package com.pugh.sockso.commands; import com.pugh.sockso.tests.SocksoTestCase; import com.pugh.sockso.tests.TestDatabase; import com.pugh.sockso.tests.TestLocale; public class UserAdminTest extends SocksoTestCase { private TestDatabase db; private Command cmd; private TestLocale locale; @Override public void setUp() { locale = new TestLocale(); locale.setString( "con.msg.userUpdated", "user updated" ); locale.setString( "con.err.errorUpdatingUser", "error updating user" ); db = new TestDatabase(); cmd = new UserAdmin( db, locale ); } private String execute( String command ) throws Exception { return cmd.execute( command.split(" ") ); } private void useradd( String command ) throws Exception { new UserAdd( db, locale ).execute( ("useradd " + command).split(" ") ); } public void testMakingAUserAdminDoesSo() throws Exception { useradd( "foo bar foo@bar.com 0" ); execute( "useradmin 0 1" ); assertRowExists( db, "users", "is_admin", "1" ); } public void testRevokingAUsersAdminDoesSo() throws Exception { useradd( "foo bar foo@bar.com 1" ); execute( "useradmin 0 0" ); assertRowExists( db, "users", "is_admin", "0" ); } public void testMessageReturnedWhenUserIsGivenAdmin() throws Exception { useradd( "foo bar foo@bar.com 0" ); assertEquals( execute("useradmin 0 1"), "user updated" ); } public void testMessageReturnedWhenUserIsRevokedFromAdmin() throws Exception { useradd( "foo bar foo@bar.com 1" ); assertEquals( execute("useradmin 0 0"), "user updated" ); } public void testErrorMessageReturnedWhenUseradminUsedWithInvalidUserId() throws Exception { useradd( "foo bar foo@bar.com 0" ); assertEquals( execute("useradmin 1 1"), "error updating user" ); } public void testErrorMessageReturnedWhenIsadminValueIsNot1Or0() throws Exception { useradd( "foo bar foo@bar.com 1" ); assertEquals( execute("useradmin 0 2"), "error updating user" ); } }