Testing - change to non-reflection WrapperMock test setup
Replaced many classes to use Wrapper to get singletons and replaced the test setups to use the WrapperMock instead of setting fields through reflection
This commit is contained in:
+14
-24
@@ -1,19 +1,20 @@
|
||||
package fr.xephi.authme.command.executable.changepassword;
|
||||
|
||||
import fr.xephi.authme.AuthMeMockUtil;
|
||||
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||
import fr.xephi.authme.command.CommandParts;
|
||||
import fr.xephi.authme.settings.MessageKey;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
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.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
@@ -25,7 +26,6 @@ import static org.mockito.Mockito.when;
|
||||
/**
|
||||
* Test for {@link ChangePasswordCommand}.
|
||||
*/
|
||||
@Ignore
|
||||
public class ChangePasswordCommandTest {
|
||||
|
||||
private Messages messagesMock;
|
||||
@@ -33,26 +33,16 @@ public class ChangePasswordCommandTest {
|
||||
|
||||
@Before
|
||||
public void setUpMocks() {
|
||||
AuthMeMockUtil.mockAuthMeInstance();
|
||||
AuthMeMockUtil.mockPlayerCacheInstance();
|
||||
cacheMock = PlayerCache.getInstance();
|
||||
|
||||
AuthMeMockUtil.mockMessagesInstance();
|
||||
messagesMock = Messages.getInstance();
|
||||
WrapperMock wrapper = WrapperMock.createInstance();
|
||||
wrapper.setDataFolder(new File("/"));
|
||||
messagesMock = wrapper.getMessages();
|
||||
cacheMock = wrapper.getPlayerCache();
|
||||
|
||||
// Only allow passwords with alphanumerical characters for the test
|
||||
Settings.getPassRegex = "[a-zA-Z0-9]+";
|
||||
Settings.getPasswordMinLen = 2;
|
||||
Settings.passwordMaxLength = 50;
|
||||
|
||||
// TODO ljacqu 20151121: Cannot mock getServer() as it's final
|
||||
// Probably the Command class should delegate as the others do
|
||||
/*
|
||||
Server server = Mockito.mock(Server.class);
|
||||
schedulerMock = Mockito.mock(BukkitScheduler.class);
|
||||
Mockito.when(server.getScheduler()).thenReturn(schedulerMock);
|
||||
Mockito.when(pluginMock.getServer()).thenReturn(server);
|
||||
*/
|
||||
// TODO ljacqu 20151126: Verify the calls to getServer() (see commented code)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -80,7 +70,7 @@ public class ChangePasswordCommandTest {
|
||||
command.executeCommand(sender, new CommandParts(), new CommandParts("pass"));
|
||||
|
||||
// then
|
||||
verify(messagesMock).send(sender, "not_logged_in");
|
||||
verify(messagesMock).send(sender, MessageKey.NOT_LOGGED_IN);
|
||||
//verify(pluginMock, never()).getServer();
|
||||
}
|
||||
|
||||
@@ -94,7 +84,7 @@ public class ChangePasswordCommandTest {
|
||||
command.executeCommand(sender, new CommandParts(), new CommandParts("!pass"));
|
||||
|
||||
// then
|
||||
verify(messagesMock).send(sender, "password_error");
|
||||
verify(messagesMock).send(sender, MessageKey.PASSWORD_MATCH_ERROR);
|
||||
//verify(pluginMock, never()).getServer();
|
||||
}
|
||||
|
||||
@@ -109,7 +99,7 @@ public class ChangePasswordCommandTest {
|
||||
command.executeCommand(sender, new CommandParts(), new CommandParts("Tester"));
|
||||
|
||||
// then
|
||||
verify(messagesMock).send(sender, "password_error_nick");
|
||||
verify(messagesMock).send(sender, MessageKey.PASSWORD_IS_USERNAME_ERROR);
|
||||
//verify(pluginMock, never()).getServer();
|
||||
}
|
||||
|
||||
@@ -124,7 +114,7 @@ public class ChangePasswordCommandTest {
|
||||
command.executeCommand(sender, new CommandParts(), new CommandParts("test"));
|
||||
|
||||
// then
|
||||
verify(messagesMock).send(sender, "pass_len");
|
||||
verify(messagesMock).send(sender, MessageKey.INVALID_PASSWORD_LENGTH);
|
||||
//verify(pluginMock, never()).getServer();
|
||||
}
|
||||
|
||||
@@ -139,7 +129,7 @@ public class ChangePasswordCommandTest {
|
||||
command.executeCommand(sender, new CommandParts(), new CommandParts("tester"));
|
||||
|
||||
// then
|
||||
verify(messagesMock).send(sender, "pass_len");
|
||||
verify(messagesMock).send(sender, MessageKey.INVALID_PASSWORD_LENGTH);
|
||||
//verify(pluginMock, never()).getServer();
|
||||
}
|
||||
|
||||
@@ -154,7 +144,7 @@ public class ChangePasswordCommandTest {
|
||||
command.executeCommand(sender, new CommandParts(), new CommandParts("abc123"));
|
||||
|
||||
// then
|
||||
verify(messagesMock).send(sender, "password_error_unsafe");
|
||||
verify(messagesMock).send(sender, MessageKey.PASSWORD_UNSAFE_ERROR);
|
||||
//verify(pluginMock, never()).getServer();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package fr.xephi.authme.command.executable.email;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.AuthMeMockUtil;
|
||||
import fr.xephi.authme.command.CommandParts;
|
||||
import fr.xephi.authme.process.Management;
|
||||
import fr.xephi.authme.util.WrapperMock;
|
||||
import org.bukkit.command.BlockCommandSender;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -27,8 +27,8 @@ public class AddEmailCommandTest {
|
||||
|
||||
@Before
|
||||
public void setUpMocks() {
|
||||
AuthMeMockUtil.mockAuthMeInstance();
|
||||
authMeMock = AuthMe.getInstance();
|
||||
WrapperMock wrapper = WrapperMock.createInstance();
|
||||
authMeMock = wrapper.getAuthMe();
|
||||
managementMock = Mockito.mock(Management.class);
|
||||
when(authMeMock.getManagement()).thenReturn(managementMock);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package fr.xephi.authme.command.executable.email;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.AuthMeMockUtil;
|
||||
import fr.xephi.authme.command.CommandParts;
|
||||
import fr.xephi.authme.process.Management;
|
||||
import fr.xephi.authme.util.WrapperMock;
|
||||
import org.bukkit.command.BlockCommandSender;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -27,8 +27,8 @@ public class ChangeEmailCommandTest {
|
||||
|
||||
@Before
|
||||
public void setUpMocks() {
|
||||
AuthMeMockUtil.mockAuthMeInstance();
|
||||
authMeMock = AuthMe.getInstance();
|
||||
WrapperMock wrapper = WrapperMock.createInstance();
|
||||
authMeMock = wrapper.getAuthMe();
|
||||
managementMock = Mockito.mock(Management.class);
|
||||
when(authMeMock.getManagement()).thenReturn(managementMock);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package fr.xephi.authme.command.executable.email;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.AuthMeMockUtil;
|
||||
import fr.xephi.authme.command.CommandParts;
|
||||
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;
|
||||
|
||||
@@ -16,10 +16,11 @@ public class RecoverEmailCommandTest {
|
||||
|
||||
@Before
|
||||
public void setUpMocks() {
|
||||
AuthMeMockUtil.mockAuthMeInstance();
|
||||
WrapperMock wrapper = WrapperMock.createInstance();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void shouldRejectNonPlayerSender() {
|
||||
// given
|
||||
CommandSender sender = Mockito.mock(BlockCommandSender.class);
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
package fr.xephi.authme.command.executable.login;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.AuthMeMockUtil;
|
||||
import fr.xephi.authme.command.CommandParts;
|
||||
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;
|
||||
@@ -12,6 +11,8 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyBoolean;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
@@ -28,12 +29,12 @@ public class LoginCommandTest {
|
||||
|
||||
@Before
|
||||
public void initializeAuthMeMock() {
|
||||
AuthMeMockUtil.mockAuthMeInstance();
|
||||
AuthMe pluginMock = AuthMe.getInstance();
|
||||
WrapperMock wrapper = WrapperMock.createInstance();
|
||||
wrapper.setDataFolder(new File("/"));
|
||||
|
||||
Settings.captchaLength = 10;
|
||||
managementMock = mock(Management.class);
|
||||
Mockito.when(pluginMock.getManagement()).thenReturn(managementMock);
|
||||
Mockito.when(wrapper.getAuthMe().getManagement()).thenReturn(managementMock);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package fr.xephi.authme.command.executable.register;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.AuthMeMockUtil;
|
||||
import fr.xephi.authme.command.CommandParts;
|
||||
import fr.xephi.authme.process.Management;
|
||||
import fr.xephi.authme.settings.MessageKey;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
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;
|
||||
@@ -15,6 +14,8 @@ import org.junit.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.mockito.Matchers.any;
|
||||
@@ -33,15 +34,13 @@ public class RegisterCommandTest {
|
||||
|
||||
@Before
|
||||
public void initializeAuthMeMock() {
|
||||
AuthMeMockUtil.mockAuthMeInstance();
|
||||
AuthMe pluginMock = AuthMe.getInstance();
|
||||
|
||||
messagesMock = mock(Messages.class);
|
||||
Mockito.when(pluginMock.getMessages()).thenReturn(messagesMock);
|
||||
WrapperMock wrapper = WrapperMock.createInstance();
|
||||
wrapper.setDataFolder(new File("/"));
|
||||
messagesMock = wrapper.getMessages();
|
||||
|
||||
Settings.captchaLength = 10;
|
||||
managementMock = mock(Management.class);
|
||||
Mockito.when(pluginMock.getManagement()).thenReturn(managementMock);
|
||||
Mockito.when(wrapper.getAuthMe().getManagement()).thenReturn(managementMock);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package fr.xephi.authme.util;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
import org.bukkit.Server;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
@@ -72,6 +73,11 @@ public class WrapperMock extends Wrapper {
|
||||
return getMock(Messages.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlayerCache getPlayerCache() {
|
||||
return getMock(PlayerCache.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getDataFolder() {
|
||||
if (singleton.getDataFolderValue != null) {
|
||||
|
||||
Reference in New Issue
Block a user