X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneInserterTest.java;h=d43f38383509988c6dca08d14a42cec559697d24;hb=dfc936c18f048843bd0c47553713e752e9824658;hp=b303a1c9436466168601397bee871f3748e02e46;hpb=c74a6b50636ab4c13967ac90fa4155eea028b836;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/core/SoneInserterTest.java b/src/test/java/net/pterodactylus/sone/core/SoneInserterTest.java index b303a1c..d43f383 100644 --- a/src/test/java/net/pterodactylus/sone/core/SoneInserterTest.java +++ b/src/test/java/net/pterodactylus/sone/core/SoneInserterTest.java @@ -1,10 +1,14 @@ package net.pterodactylus.sone.core; +import static com.google.common.base.Optional.absent; +import static com.google.common.base.Optional.of; +import static com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.argThat; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doAnswer; @@ -17,7 +21,7 @@ import static org.mockito.Mockito.when; import java.util.HashMap; import net.pterodactylus.sone.core.SoneInserter.InsertInformation; -import net.pterodactylus.sone.core.SoneInserter.SetInsertionDelay; +import net.pterodactylus.sone.core.event.InsertionDelayChangedEvent; import net.pterodactylus.sone.core.event.SoneEvent; import net.pterodactylus.sone.core.event.SoneInsertAbortedEvent; import net.pterodactylus.sone.core.event.SoneInsertedEvent; @@ -27,6 +31,8 @@ import net.pterodactylus.sone.data.Sone; import freenet.keys.FreenetURI; +import com.google.common.base.Optional; +import com.google.common.eventbus.AsyncEventBus; import com.google.common.eventbus.EventBus; import org.junit.Before; import org.junit.Test; @@ -49,12 +55,14 @@ public class SoneInserterTest { public void setupCore() { UpdateChecker updateChecker = mock(UpdateChecker.class); when(core.getUpdateChecker()).thenReturn(updateChecker); + when(core.getSone(anyString())).thenReturn(Optional.absent()); } @Test public void insertionDelayIsForwardedToSoneInserter() { - SetInsertionDelay setInsertionDelay = new SetInsertionDelay(); - setInsertionDelay.optionChanged(null, null, 15); + EventBus eventBus = new AsyncEventBus(sameThreadExecutor()); + eventBus.register(new SoneInserter(core, eventBus, freenetInterface, "SoneId")); + eventBus.post(new InsertionDelayChangedEvent(15)); assertThat(SoneInserter.getInsertionDelay().get(), is(15)); } @@ -64,11 +72,10 @@ public class SoneInserterTest { FreenetURI insertUri = mock(FreenetURI.class); String fingerprint = "fingerprint"; Sone sone = createSone(insertUri, fingerprint); - SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone); + SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId"); InsertInformation insertInformation = soneInserter.new InsertInformation(sone); HashMap manifestEntries = insertInformation.generateManifestEntries(); assertThat(manifestEntries.keySet(), containsInAnyOrder("index.html", "sone.xml")); - assertThat(insertInformation.getInsertUri(), is(insertUri)); assertThat(insertInformation.getFingerprint(), is(fingerprint)); } @@ -77,52 +84,35 @@ public class SoneInserterTest { when(sone.getInsertUri()).thenReturn(insertUri); when(sone.getFingerprint()).thenReturn(fingerprint); when(sone.getRootAlbum()).thenReturn(mock(Album.class)); + when(core.getSone(anyString())).thenReturn(of(sone)); return sone; } - @Test(expected = IllegalArgumentException.class) - public void soneOfSoneInserterCanNotBeSetToADifferentSone() { - Sone sone = mock(Sone.class); - SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone); - soneInserter.setSone(mock(Sone.class)); - } - - @Test - public void soneCanBeSetToEqualSone() { - Sone sone = mock(Sone.class); - SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone); - soneInserter.setSone(sone); - } - @Test public void isModifiedIsTrueIfModificationDetectorSaysSo() { - Sone sone = mock(Sone.class); SoneModificationDetector soneModificationDetector = mock(SoneModificationDetector.class); when(soneModificationDetector.isModified()).thenReturn(true); - SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone, soneModificationDetector); + SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId", soneModificationDetector, 1); assertThat(soneInserter.isModified(), is(true)); } @Test public void isModifiedIsFalseIfModificationDetectorSaysSo() { - Sone sone = mock(Sone.class); SoneModificationDetector soneModificationDetector = mock(SoneModificationDetector.class); - SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone, soneModificationDetector); + SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId", soneModificationDetector, 1); assertThat(soneInserter.isModified(), is(false)); } @Test public void lastFingerprintIsStoredCorrectly() { - Sone sone = mock(Sone.class); - SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone); + SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId"); soneInserter.setLastInsertFingerprint("last-fingerprint"); assertThat(soneInserter.getLastInsertFingerprint(), is("last-fingerprint")); } @Test public void soneInserterStopsWhenItShould() { - Sone sone = mock(Sone.class); - SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone); + SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId"); soneInserter.stop(); soneInserter.serviceRun(); } @@ -136,7 +126,7 @@ public class SoneInserterTest { SoneModificationDetector soneModificationDetector = mock(SoneModificationDetector.class); when(soneModificationDetector.isEligibleForInsert()).thenReturn(true); when(freenetInterface.insertDirectory(eq(insertUri), any(HashMap.class), eq("index.html"))).thenReturn(finalUri); - final SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone, soneModificationDetector); + final SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId", soneModificationDetector, 1); doAnswer(new Answer() { @Override public Void answer(InvocationOnMock invocation) throws Throwable { @@ -162,7 +152,7 @@ public class SoneInserterTest { Sone sone = createSone(insertUri, fingerprint); SoneModificationDetector soneModificationDetector = mock(SoneModificationDetector.class); when(soneModificationDetector.isEligibleForInsert()).thenReturn(true); - final SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone, soneModificationDetector); + final SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId", soneModificationDetector, 1); when(freenetInterface.insertDirectory(eq(insertUri), any(HashMap.class), eq("index.html"))).thenAnswer(new Answer() { @Override public FreenetURI answer(InvocationOnMock invocation) throws Throwable { @@ -187,7 +177,7 @@ public class SoneInserterTest { String fingerprint = "fingerprint"; Sone sone = createSone(insertUri, fingerprint); SoneModificationDetector soneModificationDetector = mock(SoneModificationDetector.class); - final SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone, soneModificationDetector); + final SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId", soneModificationDetector, 1); new Thread(new Runnable() { @Override public void run() { @@ -211,7 +201,7 @@ public class SoneInserterTest { Sone sone = createSone(insertUri, fingerprint); SoneModificationDetector soneModificationDetector = mock(SoneModificationDetector.class); when(soneModificationDetector.isEligibleForInsert()).thenReturn(true); - final SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, sone, soneModificationDetector); + final SoneInserter soneInserter = new SoneInserter(core, eventBus, freenetInterface, "SoneId", soneModificationDetector, 1); final SoneException soneException = new SoneException(new Exception()); when(freenetInterface.insertDirectory(eq(insertUri), any(HashMap.class), eq("index.html"))).thenAnswer(new Answer() { @Override