#745 Fix unit tests for changes muting message task upon captcha

This commit is contained in:
ljacqu 2016-10-23 16:48:44 +02:00
parent fba2a898b9
commit 05f05f4fe7
3 changed files with 19 additions and 12 deletions

View File

@ -1,13 +1,9 @@
package fr.xephi.authme.task; package fr.xephi.authme.task;
import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.data.auth.PlayerCache;
import fr.xephi.authme.data.limbo.LimboCache;
import fr.xephi.authme.service.BukkitService; import fr.xephi.authme.service.BukkitService;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
import static fr.xephi.authme.service.BukkitService.TICKS_PER_SECOND;
/** /**
* Message shown to a player in a regular interval as long as he is not logged in. * Message shown to a player in a regular interval as long as he is not logged in.
@ -41,7 +37,7 @@ public class MessageTask extends BukkitRunnable {
cancel(); cancel();
} }
if(isMuted) { if (isMuted) {
return; return;
} }

View File

@ -3,7 +3,10 @@ package fr.xephi.authme.command.executable.captcha;
import fr.xephi.authme.data.CaptchaManager; import fr.xephi.authme.data.CaptchaManager;
import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.data.auth.PlayerCache;
import fr.xephi.authme.command.CommandService; import fr.xephi.authme.command.CommandService;
import fr.xephi.authme.data.limbo.LimboCache;
import fr.xephi.authme.data.limbo.LimboPlayer;
import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.message.MessageKey;
import fr.xephi.authme.task.MessageTask;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -36,6 +39,9 @@ public class CaptchaCommandTest {
@Mock @Mock
private CommandService commandService; private CommandService commandService;
@Mock
private LimboCache limboCache;
@Test @Test
public void shouldDetectIfPlayerIsLoggedIn() { public void shouldDetectIfPlayerIsLoggedIn() {
// given // given
@ -76,6 +82,10 @@ public class CaptchaCommandTest {
given(captchaManager.isCaptchaRequired(name)).willReturn(true); given(captchaManager.isCaptchaRequired(name)).willReturn(true);
String captchaCode = "3991"; String captchaCode = "3991";
given(captchaManager.checkCode(name, captchaCode)).willReturn(true); given(captchaManager.checkCode(name, captchaCode)).willReturn(true);
MessageTask messageTask = mock(MessageTask.class);
LimboPlayer limboPlayer = mock(LimboPlayer.class);
given(limboPlayer.getMessageTask()).willReturn(messageTask);
given(limboCache.getPlayerData(name)).willReturn(limboPlayer);
// when // when
command.executeCommand(player, Collections.singletonList(captchaCode)); command.executeCommand(player, Collections.singletonList(captchaCode));
@ -86,6 +96,7 @@ public class CaptchaCommandTest {
verifyNoMoreInteractions(captchaManager); verifyNoMoreInteractions(captchaManager);
verify(commandService).send(player, MessageKey.CAPTCHA_SUCCESS); verify(commandService).send(player, MessageKey.CAPTCHA_SUCCESS);
verify(commandService).send(player, MessageKey.LOGIN_MESSAGE); verify(commandService).send(player, MessageKey.LOGIN_MESSAGE);
verify(messageTask).setMuted(false);
verifyNoMoreInteractions(commandService); verifyNoMoreInteractions(commandService);
} }

View File

@ -19,6 +19,7 @@ import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner; import org.mockito.runners.MockitoJUnitRunner;
import static fr.xephi.authme.service.BukkitService.TICKS_PER_SECOND;
import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.given;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyLong; import static org.mockito.Matchers.anyLong;
@ -64,16 +65,18 @@ public class LimboPlayerTaskManagerTest {
given(limboCache.getPlayerData(name)).willReturn(limboPlayer); given(limboCache.getPlayerData(name)).willReturn(limboPlayer);
MessageKey key = MessageKey.REGISTER_EMAIL_MESSAGE; MessageKey key = MessageKey.REGISTER_EMAIL_MESSAGE;
given(messages.retrieve(key)).willReturn(new String[]{"Please register!"}); given(messages.retrieve(key)).willReturn(new String[]{"Please register!"});
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(12); int interval = 12;
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(interval);
given(settings.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true); given(settings.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true);
// when // when
limboPlayerTaskManager.registerMessageTask(name, false); limboPlayerTaskManager.registerMessageTask(name, false);
// then // then
MessageTask bukkitTask = mock(MessageTask.class); verify(limboPlayer).setMessageTask(any(MessageTask.class));
verify(limboPlayer).setMessageTask(bukkitTask);
verify(messages).retrieve(key); verify(messages).retrieve(key);
verify(bukkitService).runTaskTimer(
any(MessageTask.class), eq(2L * TICKS_PER_SECOND), eq((long) interval * TICKS_PER_SECOND));
} }
@Test @Test
@ -98,8 +101,6 @@ public class LimboPlayerTaskManagerTest {
String name = "Tester1"; String name = "Tester1";
LimboPlayer limboPlayer = mock(LimboPlayer.class); LimboPlayer limboPlayer = mock(LimboPlayer.class);
given(limboCache.getPlayerData(name)).willReturn(limboPlayer); given(limboCache.getPlayerData(name)).willReturn(limboPlayer);
BukkitTask bukkiTask = mock(BukkitTask.class);
given(bukkitService.runTask(any(MessageTask.class))).willReturn(bukkiTask);
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(0); given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(0);
// when // when
@ -121,7 +122,6 @@ public class LimboPlayerTaskManagerTest {
given(messages.retrieve(MessageKey.REGISTER_EMAIL_MESSAGE)) given(messages.retrieve(MessageKey.REGISTER_EMAIL_MESSAGE))
.willReturn(new String[]{"Please register", "Use /register"}); .willReturn(new String[]{"Please register", "Use /register"});
MessageTask bukkiTask = mock(MessageTask.class);
given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(8); given(settings.getProperty(RegistrationSettings.MESSAGE_INTERVAL)).willReturn(8);
given(settings.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true); given(settings.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)).willReturn(true);
@ -129,7 +129,7 @@ public class LimboPlayerTaskManagerTest {
limboPlayerTaskManager.registerMessageTask(name, false); limboPlayerTaskManager.registerMessageTask(name, false);
// then // then
verify(limboPlayer).setMessageTask(bukkiTask); verify(limboPlayer).setMessageTask(any(MessageTask.class));
verify(messages).retrieve(MessageKey.REGISTER_EMAIL_MESSAGE); verify(messages).retrieve(MessageKey.REGISTER_EMAIL_MESSAGE);
verify(existingMessageTask).cancel(); verify(existingMessageTask).cancel();
} }