X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneModificationDetectorTest.java;h=1fd52c896c3e741f4f1626e83e59880e540c25d7;hb=03cec6a6772c2d836d94864adddaf544cbe9d72f;hp=e2b34f7f44d76b2605c24786c54ce23e01f02434;hpb=1c0a2b5e67dda41e75d2315fd0f6f1cfecf26fa6;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/core/SoneModificationDetectorTest.java b/src/test/java/net/pterodactylus/sone/core/SoneModificationDetectorTest.java index e2b34f7..1fd52c8 100644 --- a/src/test/java/net/pterodactylus/sone/core/SoneModificationDetectorTest.java +++ b/src/test/java/net/pterodactylus/sone/core/SoneModificationDetectorTest.java @@ -9,15 +9,13 @@ import static org.mockito.Mockito.when; import java.util.concurrent.atomic.AtomicInteger; import net.pterodactylus.sone.core.SoneModificationDetector.LockableFingerprintProvider; -import net.pterodactylus.sone.data.Sone; import com.google.common.base.Ticker; +import org.junit.Before; import org.junit.Test; /** * Unit test for {@link SoneModificationDetector}. - * - * @author David ‘Bombe’ Roden */ public class SoneModificationDetectorTest { @@ -52,6 +50,11 @@ public class SoneModificationDetectorTest { when(lockableFingerprintProvider.isLocked()).thenReturn(false); } + @Before + public void setupOriginalFingerprint() { + soneModificationDetector.setFingerprint("original"); + } + @Test public void normalConstructorCanBeCalled() { new SoneModificationDetector(lockableFingerprintProvider, insertionDelay); @@ -65,7 +68,7 @@ public class SoneModificationDetectorTest { @Test public void originalFingerprintIsRetained() { - assertThat(soneModificationDetector.getOriginalFingerprint(), is("original")); + assertThat(soneModificationDetector.getLastInsertFingerprint(), is("original")); } @Test @@ -146,4 +149,34 @@ public class SoneModificationDetectorTest { assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); } + @Test + public void soneWithoutOriginalFingerprintIsNotEligibleAfter59Seconds() { + SoneModificationDetector soneModificationDetector = createDetectorWithoutOriginalFingerprint(); + assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + passTime(59); + assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + } + + private SoneModificationDetector createDetectorWithoutOriginalFingerprint() { + return new SoneModificationDetector(ticker, new LockableFingerprintProvider() { + @Override + public boolean isLocked() { + return false; + } + + @Override + public String getFingerprint() { + return "changed"; + } + }, insertionDelay); + } + + @Test + public void soneWithoutOriginalFingerprintIsEligibleAfter60Seconds() { + SoneModificationDetector soneModificationDetector = createDetectorWithoutOriginalFingerprint(); + assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + passTime(60); + assertThat(soneModificationDetector.isEligibleForInsert(), is(true)); + } + }