Minor - code householding (tests)

- Remove redundant uses of WrapperMock
- Use assertThat() from JUnit, not hamcrest
- Use hamcrest Matchers everywhere (not BaseMatchers etc.)
- Favor Mockito's argThat() over using ArgumentCaptor (more succinct)
- Delete useless test classes
This commit is contained in:
ljacqu
2016-04-03 07:38:13 +02:00
parent ba217a2595
commit c079692f1d
29 changed files with 67 additions and 225 deletions
@@ -14,8 +14,8 @@ import java.util.Collections;
import java.util.List;
import static fr.xephi.authme.TestHelper.runInnerRunnable;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
@@ -81,7 +81,7 @@ public class AccountsCommandTest {
// given
List<String> arguments = Collections.singletonList("SomeUser");
given(dataSource.getAuth("someuser")).willReturn(mock(PlayerAuth.class));
given(dataSource.getAllAuthsByIp(anyString())).willReturn(Collections.<String> emptyList());
given(dataSource.getAllAuthsByIp(anyString())).willReturn(Collections.<String>emptyList());
// when
command.executeCommand(sender, arguments, service);
@@ -115,7 +115,7 @@ public class AccountsCommandTest {
public void shouldReturnIpUnknown() {
// given
List<String> arguments = Collections.singletonList("123.45.67.89");
given(dataSource.getAllAuthsByIp("123.45.67.89")).willReturn(Collections.<String> emptyList());
given(dataSource.getAllAuthsByIp("123.45.67.89")).willReturn(Collections.<String>emptyList());
// when
command.executeCommand(sender, arguments, service);
@@ -8,7 +8,7 @@ import org.mockito.ArgumentCaptor;
import java.util.Collections;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
@@ -6,14 +6,13 @@ import fr.xephi.authme.settings.SpawnLoader;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import java.util.Collections;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -36,7 +35,7 @@ public class FirstSpawnCommandTest {
ExecutableCommand command = new FirstSpawnCommand();
// when
command.executeCommand(player, Collections.<String> emptyList(), service);
command.executeCommand(player, Collections.<String>emptyList(), service);
// then
verify(player).teleport(firstSpawn);
@@ -54,12 +53,10 @@ public class FirstSpawnCommandTest {
ExecutableCommand command = new FirstSpawnCommand();
// when
command.executeCommand(player, Collections.<String> emptyList(), service);
command.executeCommand(player, Collections.<String>emptyList(), service);
// then
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
verify(player).sendMessage(captor.capture());
assertThat(captor.getValue(), containsString("spawn has failed"));
verify(player).sendMessage(argThat(containsString("spawn has failed")));
verify(player, never()).teleport(any(Location.class));
}
}
@@ -7,13 +7,12 @@ import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.output.MessageKey;
import org.bukkit.command.CommandSender;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import java.util.Collections;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -61,8 +60,6 @@ public class GetEmailCommandTest {
command.executeCommand(sender, Collections.singletonList(user), service);
// then
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
verify(sender).sendMessage(captor.capture());
assertThat(captor.getValue(), containsString(email));
verify(sender).sendMessage(argThat(containsString(email)));
}
}
@@ -103,7 +103,7 @@ public class LastLoginCommandTest {
ExecutableCommand command = new LastLoginCommand();
// when
command.executeCommand(sender, Collections.<String> emptyList(), service);
command.executeCommand(sender, Collections.<String>emptyList(), service);
// then
verify(dataSource).getAuth(name);
@@ -61,7 +61,7 @@ public class PurgeLastPositionCommandTest {
ExecutableCommand command = new PurgeLastPositionCommand();
// when
command.executeCommand(sender, Collections.<String> emptyList(), service);
command.executeCommand(sender, Collections.<String>emptyList(), service);
// then
verify(dataSource).getAuth(player);
@@ -37,7 +37,7 @@ public class ReloadCommandTest {
ExecutableCommand command = new ReloadCommand();
// when
command.executeCommand(sender, Collections.<String> emptyList(), service);
command.executeCommand(sender, Collections.<String>emptyList(), service);
// then
verify(authMe).reload();
@@ -55,7 +55,7 @@ public class ReloadCommandTest {
ExecutableCommand command = new ReloadCommand();
// when
command.executeCommand(sender, Collections.<String> emptyList(), service);
command.executeCommand(sender, Collections.<String>emptyList(), service);
// then
verify(authMe).reload();
@@ -35,7 +35,7 @@ public class SetFirstSpawnCommandTest {
ExecutableCommand command = new SetFirstSpawnCommand();
// when
command.executeCommand(player, Collections.<String> emptyList(), service);
command.executeCommand(player, Collections.<String>emptyList(), service);
// then
verify(spawnLoader).setFirstSpawn(location);
@@ -57,7 +57,7 @@ public class SetFirstSpawnCommandTest {
ExecutableCommand command = new SetFirstSpawnCommand();
// when
command.executeCommand(player, Collections.<String> emptyList(), service);
command.executeCommand(player, Collections.<String>emptyList(), service);
// then
verify(spawnLoader).setFirstSpawn(location);
@@ -35,7 +35,7 @@ public class SetSpawnCommandTest {
ExecutableCommand command = new SetSpawnCommand();
// when
command.executeCommand(player, Collections.<String> emptyList(), service);
command.executeCommand(player, Collections.<String>emptyList(), service);
// then
verify(spawnLoader).setSpawn(location);
@@ -57,7 +57,7 @@ public class SetSpawnCommandTest {
ExecutableCommand command = new SetSpawnCommand();
// when
command.executeCommand(player, Collections.<String> emptyList(), service);
command.executeCommand(player, Collections.<String>emptyList(), service);
// then
verify(spawnLoader).setSpawn(location);
@@ -35,7 +35,7 @@ public class SpawnCommandTest {
ExecutableCommand command = new SpawnCommand();
// when
command.executeCommand(player, Collections.<String> emptyList(), service);
command.executeCommand(player, Collections.<String>emptyList(), service);
// then
verify(player).teleport(spawn);
@@ -53,7 +53,7 @@ public class SpawnCommandTest {
ExecutableCommand command = new SpawnCommand();
// when
command.executeCommand(player, Collections.<String> emptyList(), service);
command.executeCommand(player, Collections.<String>emptyList(), service);
// then
verify(player).sendMessage(argThat(containsString("Spawn has failed")));
@@ -1,75 +0,0 @@
package fr.xephi.authme.command.executable.captcha;
import fr.xephi.authme.AuthMe;
import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.command.ExecutableCommand;
import fr.xephi.authme.output.MessageKey;
import fr.xephi.authme.output.Messages;
import fr.xephi.authme.settings.properties.SecuritySettings;
import fr.xephi.authme.util.WrapperMock;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import java.util.ArrayList;
import java.util.Collections;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
/**
* Test for {@link CaptchaCommand}.
*/
public class CaptchaCommandTest {
private WrapperMock wrapperMock;
private CommandService commandService;
@Before
public void setUpWrapperMock() {
wrapperMock = WrapperMock.createInstance();
commandService = mock(CommandService.class);
given(commandService.getProperty(SecuritySettings.USE_CAPTCHA)).willReturn(true);
}
@Test
public void shouldRejectNonPlayerSender() {
// given
CommandSender sender = Mockito.mock(BlockCommandSender.class);
ExecutableCommand command = new CaptchaCommand();
// when
command.executeCommand(sender, new ArrayList<String>(), commandService);
// then
assertThat(wrapperMock.wasMockCalled(AuthMe.class), equalTo(false));
assertThat(wrapperMock.wasMockCalled(Messages.class), equalTo(false));
}
@Test
public void shouldRejectIfCaptchaIsNotUsed() {
// given
Player player = mockPlayerWithName("testplayer");
ExecutableCommand command = new CaptchaCommand();
given(commandService.getProperty(SecuritySettings.USE_CAPTCHA)).willReturn(false);
// when
command.executeCommand(player, Collections.singletonList("1234"), commandService);
// then
verify(commandService).send(player, MessageKey.USAGE_LOGIN);
}
private static Player mockPlayerWithName(String name) {
Player player = Mockito.mock(Player.class);
when(player.getName()).thenReturn(name);
return player;
}
}
@@ -18,9 +18,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.any;
@@ -3,7 +3,6 @@ package fr.xephi.authme.command.executable.email;
import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.process.Management;
import fr.xephi.authme.settings.NewSetting;
import fr.xephi.authme.util.WrapperMock;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -29,7 +28,6 @@ public class AddEmailCommandTest {
@Before
public void setUpMocks() {
commandService = mock(CommandService.class);
WrapperMock.createInstance();
}
@Test
@@ -1,41 +0,0 @@
package fr.xephi.authme.command.executable.email;
import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.util.WrapperMock;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.CommandSender;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
import java.util.ArrayList;
import static org.mockito.Mockito.mock;
/**
* Test for {@link RecoverEmailCommand}.
*/
public class RecoverEmailCommandTest {
@Before
public void setUpMocks() {
WrapperMock wrapper = WrapperMock.createInstance();
}
@Test
@Ignore
public void shouldRejectNonPlayerSender() {
// given
CommandSender sender = Mockito.mock(BlockCommandSender.class);
RecoverEmailCommand command = new RecoverEmailCommand();
// when
command.executeCommand(sender, new ArrayList<String>(), mock(CommandService.class));
// then
}
// TODO ljacqu 20151121: Expand tests. This command doesn't use a scheduler and has all of its
// logic inside here.
}
@@ -2,22 +2,20 @@ package fr.xephi.authme.command.executable.login;
import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.process.Management;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.util.WrapperMock;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import java.util.ArrayList;
import java.util.Collections;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.argThat;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -26,17 +24,12 @@ import static org.mockito.Mockito.verify;
/**
* Test for {@link LoginCommand}.
*/
@RunWith(MockitoJUnitRunner.class)
public class LoginCommandTest {
@Mock
private CommandService commandService;
@Before
public void initializeAuthMeMock() {
WrapperMock.createInstance();
Settings.captchaLength = 10;
commandService = mock(CommandService.class);
}
@Test
public void shouldStopIfSenderIsNotAPlayer() {
// given
@@ -47,10 +40,8 @@ public class LoginCommandTest {
command.executeCommand(sender, new ArrayList<String>(), commandService);
// then
Mockito.verify(commandService, never()).getManagement();
ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
verify(sender).sendMessage(messageCaptor.capture());
assertThat(messageCaptor.getValue(), containsString("only for players"));
verify(commandService, never()).getManagement();
verify(sender).sendMessage(argThat(containsString("only for players")));
}
@Test
@@ -65,7 +56,7 @@ public class LoginCommandTest {
command.executeCommand(sender, Collections.singletonList("password"), commandService);
// then
Mockito.verify(management).performLogin(eq(sender), eq("password"), eq(false));
verify(management).performLogin(eq(sender), eq("password"), eq(false));
}
}
@@ -2,21 +2,18 @@ package fr.xephi.authme.command.executable.logout;
import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.process.Management;
import fr.xephi.authme.settings.Settings;
import fr.xephi.authme.util.WrapperMock;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import java.util.ArrayList;
import java.util.Collections;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -30,8 +27,6 @@ public class LogoutCommandTest {
@Before
public void initializeAuthMeMock() {
WrapperMock.createInstance();
Settings.captchaLength = 10;
commandService = mock(CommandService.class);
}
@@ -46,9 +41,7 @@ public class LogoutCommandTest {
// then
verify(commandService, never()).getManagement();
ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
verify(sender).sendMessage(messageCaptor.capture());
assertThat(messageCaptor.getValue(), containsString("only for players"));
verify(sender).sendMessage(argThat(containsString("only for players")));
}
@Test
@@ -10,14 +10,13 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import java.util.ArrayList;
import java.util.Collections;
import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -47,9 +46,7 @@ public class RegisterCommandTest {
// then
verify(commandService, never()).getManagement();
ArgumentCaptor<String> messageCaptor = ArgumentCaptor.forClass(String.class);
verify(sender).sendMessage(messageCaptor.capture());
assertThat(messageCaptor.getValue(), containsString("Player only!"));
verify(sender).sendMessage(argThat(containsString("Player only!")));
}
@Test