X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneModificationDetectorTest.java;h=9d1cc5955c62afd938fc019d1ae9020fff963c9f;hb=84b0cda5e125223b215f61f8d541ece42025d30d;hp=fec97b1eb9753ea6e03f17a496d832248ae79a8c;hpb=b772949af7dcc12a91f1a11dfbfe02d64f1d3050;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 fec97b1..9d1cc59 100644 --- a/src/test/java/net/pterodactylus/sone/core/SoneModificationDetectorTest.java +++ b/src/test/java/net/pterodactylus/sone/core/SoneModificationDetectorTest.java @@ -32,7 +32,11 @@ public class SoneModificationDetectorTest { } private void modifySone() { - when(sone.getFingerprint()).thenReturn("modified"); + modifySone(""); + } + + private void modifySone(String uniqueValue) { + when(sone.getFingerprint()).thenReturn("modified" + uniqueValue); } private void passTime(int seconds) { @@ -43,6 +47,10 @@ public class SoneModificationDetectorTest { when(core.isLocked(sone)).thenReturn(true); } + private void unlockSone() { + when(core.isLocked(sone)).thenReturn(false); + } + @Test public void sonesStartOutAsNotEligible() { assertThat(soneModificationDetector.isModified(), is(false)); @@ -60,8 +68,24 @@ public class SoneModificationDetectorTest { } @Test - public void modifiedSoneIsNotEligibleAfter30Seconds() { + public void modifiedAndRemodifiedSoneIsEligibleAfter90Seconds() { + modifySone(); + assertThat(soneModificationDetector.isModified(), is(true)); assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + passTime(30); + modifySone("2"); + assertThat(soneModificationDetector.isModified(), is(true)); + assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + passTime(61); + assertThat(soneModificationDetector.isModified(), is(true)); + assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + passTime(91); + assertThat(soneModificationDetector.isModified(), is(true)); + assertThat(soneModificationDetector.isEligibleForInsert(), is(true)); + } + + @Test + public void modifiedSoneIsNotEligibleAfter30Seconds() { modifySone(); passTime(30); assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); @@ -78,6 +102,20 @@ public class SoneModificationDetectorTest { } @Test + public void lockingAndUnlockingASoneRestartsTheWaitPeriod() { + modifySone(); + lockSone(); + passTime(30); + assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + unlockSone(); + assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + passTime(60); + assertThat(soneModificationDetector.isEligibleForInsert(), is(false)); + passTime(90); + assertThat(soneModificationDetector.isEligibleForInsert(), is(true)); + } + + @Test public void settingFingerprintWillResetTheEligibility() { modifySone(); assertThat(soneModificationDetector.isEligibleForInsert(), is(false));