From ed0126d06cb995b140ab8bd232ab0c0df03ad6b5 Mon Sep 17 00:00:00 2001 From: Gnat008 Date: Tue, 21 Mar 2017 16:48:20 -0400 Subject: [PATCH] Add a couple tests --- .../service/PasswordRecoveryServiceTest.java | 35 ++++++++++++++----- .../util/expiring/TimedCounterTest.java | 15 ++++++++ 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/src/test/java/fr/xephi/authme/service/PasswordRecoveryServiceTest.java b/src/test/java/fr/xephi/authme/service/PasswordRecoveryServiceTest.java index c7c1419d..48973bbf 100644 --- a/src/test/java/fr/xephi/authme/service/PasswordRecoveryServiceTest.java +++ b/src/test/java/fr/xephi/authme/service/PasswordRecoveryServiceTest.java @@ -1,24 +1,27 @@ package fr.xephi.authme.service; import ch.jalu.injector.testing.BeforeInjecting; +import ch.jalu.injector.testing.DelayedInjectionRunner; import ch.jalu.injector.testing.InjectDelayed; import fr.xephi.authme.datasource.DataSource; import fr.xephi.authme.mail.EmailService; +import fr.xephi.authme.message.MessageKey; import fr.xephi.authme.message.Messages; import fr.xephi.authme.security.PasswordSecurity; import fr.xephi.authme.settings.properties.SecuritySettings; -import org.junit.Ignore; +import org.bukkit.entity.Player; +import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; /** * Tests for {@link PasswordRecoveryService}. */ -@Ignore -@RunWith(MockitoJUnitRunner.class) +@RunWith(DelayedInjectionRunner.class) public class PasswordRecoveryServiceTest { @InjectDelayed @@ -39,16 +42,32 @@ public class PasswordRecoveryServiceTest { @Mock private PasswordSecurity passwordSecurity; - @Mock - private RecoveryCodeService recoveryCodeService; - @Mock private Messages messages; @BeforeInjecting public void initSettings() { given(commonService.getProperty(SecuritySettings.EMAIL_RECOVERY_COOLDOWN_SECONDS)).willReturn(40); + given(commonService.getProperty(SecuritySettings.PASSWORD_CHANGE_TIMEOUT)).willReturn(2); } - //TODO: Write tests + @Test + public void shouldSendRecoveryCode() { + // given + Player player = mock(Player.class); + String name = "Carl"; + given(player.getName()).willReturn(name); + String email = "test@example.com"; + String code = "qwerty"; + given(codeService.generateCode(name)).willReturn(code); + given(emailService.sendRecoveryCode(player.getName(), email, code)).willReturn(true); + + // when + recoveryService.createAndSendRecoveryCode(player, email); + + // then + verify(codeService).generateCode(name); + verify(emailService).sendRecoveryCode(name, email, code); + verify(commonService).send(player, MessageKey.RECOVERY_CODE_SENT); + } } diff --git a/src/test/java/fr/xephi/authme/util/expiring/TimedCounterTest.java b/src/test/java/fr/xephi/authme/util/expiring/TimedCounterTest.java index dcfcb73a..abf01274 100644 --- a/src/test/java/fr/xephi/authme/util/expiring/TimedCounterTest.java +++ b/src/test/java/fr/xephi/authme/util/expiring/TimedCounterTest.java @@ -37,6 +37,21 @@ public class TimedCounterTest { assertThat(counter.get("moto"), equalTo(13)); } + @Test + public void shouldDecrementCount() { + // given + TimedCounter counter = new TimedCounter<>(10, TimeUnit.MINUTES); + counter.put("moto", 12); + + // when + counter.decrement("hello"); + counter.decrement("moto"); + + // then + assertThat(counter.get("hello"), equalTo(0)); + assertThat(counter.get("moto"), equalTo(11)); + } + @Test public void shouldSumUpEntries() { // given