Remove BukkitService from CommandService, inject where needed instead

This commit is contained in:
ljacqu
2016-05-08 13:50:20 +02:00
parent 5e5836f167
commit 8e878d6a5a
20 changed files with 127 additions and 119 deletions
@@ -189,19 +189,4 @@ public class CommandServiceTest {
verify(validationService).isEmailFreeForRegistration(email, sender);
}
@Test
public void shouldGetPlayer() {
// given
String playerName = "_tester";
Player player = mock(Player.class);
given(bukkitService.getPlayerExact(playerName)).willReturn(player);
// when
Player result = commandService.getPlayer(playerName);
// then
assertThat(result, equalTo(player));
verify(bukkitService).getPlayerExact(playerName);
}
}
@@ -4,7 +4,7 @@ import fr.xephi.authme.cache.auth.PlayerAuth;
import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.output.MessageKey;
import fr.xephi.authme.output.Messages;
import fr.xephi.authme.util.BukkitService;
import org.bukkit.command.CommandSender;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -42,7 +42,7 @@ public class AccountsCommandTest {
@Mock
private DataSource dataSource;
@Mock
private Messages messages;
private BukkitService bukkitService;
@Test
public void shouldGetAccountsOfCurrentUser() {
@@ -54,7 +54,7 @@ public class AccountsCommandTest {
// when
command.executeCommand(sender, arguments, service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
String[] messages = getMessagesSentToSender(sender, 2);
@@ -70,10 +70,10 @@ public class AccountsCommandTest {
// when
command.executeCommand(sender, arguments, service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
verify(messages).send(sender, MessageKey.UNKNOWN_USER);
verify(service).send(sender, MessageKey.UNKNOWN_USER);
verify(sender, never()).sendMessage(anyString());
}
@@ -86,10 +86,10 @@ public class AccountsCommandTest {
// when
command.executeCommand(sender, arguments, service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
verify(messages).send(sender, MessageKey.USER_NOT_REGISTERED);
verify(service).send(sender, MessageKey.USER_NOT_REGISTERED);
verify(sender, never()).sendMessage(anyString());
}
@@ -102,7 +102,7 @@ public class AccountsCommandTest {
// when
command.executeCommand(sender, arguments, service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
String[] messages = getMessagesSentToSender(sender, 1);
@@ -120,7 +120,7 @@ public class AccountsCommandTest {
// when
command.executeCommand(sender, arguments, service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
String[] messages = getMessagesSentToSender(sender, 1);
@@ -135,7 +135,7 @@ public class AccountsCommandTest {
// when
command.executeCommand(sender, arguments, service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
String[] messages = getMessagesSentToSender(sender, 1);
@@ -150,7 +150,7 @@ public class AccountsCommandTest {
// when
command.executeCommand(sender, arguments, service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
String[] messages = getMessagesSentToSender(sender, 2);
@@ -8,6 +8,7 @@ import fr.xephi.authme.datasource.DataSource;
import fr.xephi.authme.output.MessageKey;
import fr.xephi.authme.security.PasswordSecurity;
import fr.xephi.authme.security.crypts.HashedPassword;
import fr.xephi.authme.util.BukkitService;
import org.bukkit.command.CommandSender;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -47,6 +48,9 @@ public class ChangePasswordAdminCommandTest {
@Mock
private PlayerCache playerCache;
@Mock
private BukkitService bukkitService;
@BeforeClass
public static void setUpLogger() {
TestHelper.setupLogger();
@@ -77,7 +81,7 @@ public class ChangePasswordAdminCommandTest {
// when
command.executeCommand(sender, Arrays.asList(player, "password"), service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
verify(service).send(sender, MessageKey.UNKNOWN_USER);
@@ -101,7 +105,7 @@ public class ChangePasswordAdminCommandTest {
// when
command.executeCommand(sender, Arrays.asList(player, password), service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
verify(service).validatePassword(password, player);
@@ -128,7 +132,7 @@ public class ChangePasswordAdminCommandTest {
// when
command.executeCommand(sender, Arrays.asList(player, password), service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
verify(service).validatePassword(password, player);
@@ -154,7 +158,7 @@ public class ChangePasswordAdminCommandTest {
// when
command.executeCommand(sender, Arrays.asList(player, password), service);
runInnerRunnable(service);
runInnerRunnable(bukkitService);
// then
verify(service).validatePassword(password, player);
@@ -1,10 +1,10 @@
package fr.xephi.authme.command.executable.authme;
import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.command.ExecutableCommand;
import fr.xephi.authme.permission.PermissionsManager;
import fr.xephi.authme.permission.PlayerPermission;
import fr.xephi.authme.process.Management;
import fr.xephi.authme.util.BukkitService;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.junit.Test;
@@ -39,6 +39,9 @@ public class ForceLoginCommandTest {
@Mock
private PermissionsManager permissionsManager;
@Mock
private BukkitService bukkitService;
@Mock
private CommandService commandService;
@@ -48,14 +51,14 @@ public class ForceLoginCommandTest {
// given
String playerName = "Bobby";
Player player = mockPlayer(false, playerName);
given(commandService.getPlayer(playerName)).willReturn(player);
given(bukkitService.getPlayerExact(playerName)).willReturn(player);
CommandSender sender = mock(CommandSender.class);
// when
command.executeCommand(sender, Collections.singletonList(playerName), commandService);
// then
verify(commandService).getPlayer(playerName);
verify(bukkitService).getPlayerExact(playerName);
verify(sender).sendMessage(argThat(equalTo("Player needs to be online!")));
verifyZeroInteractions(management);
}
@@ -64,15 +67,14 @@ public class ForceLoginCommandTest {
public void shouldRejectInexistentPlayer() {
// given
String playerName = "us3rname01";
given(commandService.getPlayer(playerName)).willReturn(null);
given(bukkitService.getPlayerExact(playerName)).willReturn(null);
CommandSender sender = mock(CommandSender.class);
ExecutableCommand command = new ForceLoginCommand();
// when
command.executeCommand(sender, Collections.singletonList(playerName), commandService);
// then
verify(commandService).getPlayer(playerName);
verify(bukkitService).getPlayerExact(playerName);
verify(sender).sendMessage(argThat(equalTo("Player needs to be online!")));
verifyZeroInteractions(management);
}
@@ -82,7 +84,7 @@ public class ForceLoginCommandTest {
// given
String playerName = "testTest";
Player player = mockPlayer(true, playerName);
given(commandService.getPlayer(playerName)).willReturn(player);
given(bukkitService.getPlayerExact(playerName)).willReturn(player);
given(permissionsManager.hasPermission(player, PlayerPermission.CAN_LOGIN_BE_FORCED)).willReturn(false);
CommandSender sender = mock(CommandSender.class);
@@ -90,7 +92,7 @@ public class ForceLoginCommandTest {
command.executeCommand(sender, Collections.singletonList(playerName), commandService);
// then
verify(commandService).getPlayer(playerName);
verify(bukkitService).getPlayerExact(playerName);
verify(sender).sendMessage(argThat(containsString("You cannot force login the player")));
verifyZeroInteractions(management);
}
@@ -100,7 +102,7 @@ public class ForceLoginCommandTest {
// given
String playerName = "tester23";
Player player = mockPlayer(true, playerName);
given(commandService.getPlayer(playerName)).willReturn(player);
given(bukkitService.getPlayerExact(playerName)).willReturn(player);
given(permissionsManager.hasPermission(player, PlayerPermission.CAN_LOGIN_BE_FORCED)).willReturn(true);
CommandSender sender = mock(CommandSender.class);
@@ -108,7 +110,7 @@ public class ForceLoginCommandTest {
command.executeCommand(sender, Collections.singletonList(playerName), commandService);
// then
verify(commandService).getPlayer(playerName);
verify(bukkitService).getPlayerExact(playerName);
verify(management).performLogin(eq(player), anyString(), eq(true));
}
@@ -117,7 +119,7 @@ public class ForceLoginCommandTest {
// given
String senderName = "tester23";
Player player = mockPlayer(true, senderName);
given(commandService.getPlayer(senderName)).willReturn(player);
given(bukkitService.getPlayerExact(senderName)).willReturn(player);
given(permissionsManager.hasPermission(player, PlayerPermission.CAN_LOGIN_BE_FORCED)).willReturn(true);
CommandSender sender = mock(CommandSender.class);
given(sender.getName()).willReturn(senderName);
@@ -126,7 +128,7 @@ public class ForceLoginCommandTest {
command.executeCommand(sender, Collections.<String>emptyList(), commandService);
// then
verify(commandService).getPlayer(senderName);
verify(bukkitService).getPlayerExact(senderName);
verify(management).performLogin(eq(player), anyString(), eq(true));
}
@@ -1,11 +1,12 @@
package fr.xephi.authme.command.executable.authme;
import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.command.ExecutableCommand;
import fr.xephi.authme.util.BukkitService;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
@@ -27,22 +28,28 @@ import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public class GetIpCommandTest {
@InjectMocks
private GetIpCommand command;
@Mock
private CommandService commandService;
@Mock
private BukkitService bukkitService;
@Mock
private CommandSender sender;
@Test
public void shouldGetIpOfPlayer() {
// given
given(commandService.getPlayer(anyString())).willReturn(null);
ExecutableCommand command = new GetIpCommand();
given(bukkitService.getPlayerExact(anyString())).willReturn(null);
// when
command.executeCommand(sender, Collections.singletonList("Testt"), commandService);
// then
verify(commandService).getPlayer("Testt");
verify(bukkitService).getPlayerExact("Testt");
verify(sender).sendMessage(argThat(containsString("not online")));
}
@@ -52,14 +59,13 @@ public class GetIpCommandTest {
String playerName = "charlie";
String ip = "123.34.56.88";
Player player = mockPlayer(playerName, ip);
given(commandService.getPlayer(playerName)).willReturn(player);
ExecutableCommand command = new GetIpCommand();
given(bukkitService.getPlayerExact(playerName)).willReturn(player);
// when
command.executeCommand(sender, Collections.singletonList(playerName), commandService);
// then
verify(commandService).getPlayer(playerName);
verify(bukkitService).getPlayerExact(playerName);
verify(sender).sendMessage(argThat(allOf(containsString(playerName), containsString(ip))));
}
@@ -42,15 +42,18 @@ public class RegisterAdminCommandTest {
@Mock
private PasswordSecurity passwordSecurity;
@Mock
private DataSource dataSource;
@Mock
private BukkitService bukkitService;
@Mock
private CommandSender sender;
@Mock
private CommandService commandService;
@Mock
private DataSource dataSource;
@BeforeClass
public static void setUpLogger() {
TestHelper.setupLogger();
@@ -69,7 +72,7 @@ public class RegisterAdminCommandTest {
// then
verify(commandService).validatePassword(password, user);
verify(commandService).send(sender, MessageKey.INVALID_PASSWORD_LENGTH);
verify(commandService, never()).runTaskAsynchronously(any(Runnable.class));
verify(bukkitService, never()).runTaskAsynchronously(any(Runnable.class));
}
@Test
@@ -82,7 +85,7 @@ public class RegisterAdminCommandTest {
// when
command.executeCommand(sender, Arrays.asList(user, password), commandService);
TestHelper.runInnerRunnable(commandService);
TestHelper.runInnerRunnable(bukkitService);
// then
verify(commandService).validatePassword(password, user);
@@ -103,7 +106,7 @@ public class RegisterAdminCommandTest {
// when
command.executeCommand(sender, Arrays.asList(user, password), commandService);
TestHelper.runInnerRunnable(commandService);
TestHelper.runInnerRunnable(bukkitService);
// then
verify(commandService).validatePassword(password, user);
@@ -123,11 +126,11 @@ public class RegisterAdminCommandTest {
given(dataSource.saveAuth(any(PlayerAuth.class))).willReturn(true);
HashedPassword hashedPassword = new HashedPassword("$aea2345EW235dfsa@#R%987048");
given(passwordSecurity.computeHash(password, user)).willReturn(hashedPassword);
given(commandService.getPlayer(user)).willReturn(null);
given(bukkitService.getPlayerExact(user)).willReturn(null);
// when
command.executeCommand(sender, Arrays.asList(user, password), commandService);
TestHelper.runInnerRunnable(commandService);
TestHelper.runInnerRunnable(bukkitService);
// then
verify(commandService).validatePassword(password, user);
@@ -149,13 +152,11 @@ public class RegisterAdminCommandTest {
HashedPassword hashedPassword = new HashedPassword("$aea2345EW235dfsa@#R%987048");
given(passwordSecurity.computeHash(password, user)).willReturn(hashedPassword);
Player player = mock(Player.class);
given(commandService.getPlayer(user)).willReturn(player);
BukkitService bukkitService = mock(BukkitService.class);
given(commandService.getBukkitService()).willReturn(bukkitService);
given(bukkitService.getPlayerExact(user)).willReturn(player);
// when
command.executeCommand(sender, Arrays.asList(user, password), commandService);
TestHelper.runInnerRunnable(commandService);
TestHelper.runInnerRunnable(bukkitService);
runSyncDelayedTask(bukkitService);
// then
@@ -7,6 +7,7 @@ import fr.xephi.authme.output.MessageKey;
import fr.xephi.authme.settings.properties.RestrictionSettings;
import fr.xephi.authme.settings.properties.SecuritySettings;
import fr.xephi.authme.task.ChangePasswordTask;
import fr.xephi.authme.util.BukkitService;
import org.bukkit.command.BlockCommandSender;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -49,6 +50,9 @@ public class ChangePasswordCommandTest {
@Mock
private CommandService commandService;
@Mock
private BukkitService bukkitService;
@Before
public void setSettings() {
when(commandService.getProperty(SecuritySettings.MIN_PASSWORD_LENGTH)).thenReturn(2);
@@ -109,7 +113,7 @@ public class ChangePasswordCommandTest {
verify(commandService).validatePassword("abc123", "parker");
verify(commandService, never()).send(eq(sender), any(MessageKey.class));
ArgumentCaptor<ChangePasswordTask> taskCaptor = ArgumentCaptor.forClass(ChangePasswordTask.class);
verify(commandService).runTaskAsynchronously(taskCaptor.capture());
verify(bukkitService).runTaskAsynchronously(taskCaptor.capture());
ChangePasswordTask task = taskCaptor.getValue();
assertThat((String) ReflectionTestUtils.getFieldValue(ChangePasswordTask.class, task, "newPassword"),
equalTo("abc123"));