X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FWebOfTrustUpdaterTest.java;h=c8057c53978f96b9cf2af6c85741c6ad395ec361;hp=84dca44d019e692bc015a1ec9bdbeb27e75c4af2;hb=da0926405f52158c071e3b6b93aea5f97efdec15;hpb=08045c5c1449356986c0a0cc51fcd46a262a3325 diff --git a/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java b/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java index 84dca44..c8057c5 100644 --- a/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java +++ b/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java @@ -1,5 +1,6 @@ package net.pterodactylus.sone.core; +import static java.lang.Thread.sleep; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.mockito.Matchers.eq; @@ -10,6 +11,7 @@ import static org.mockito.Mockito.verify; import net.pterodactylus.sone.core.WebOfTrustUpdater.AddContextJob; import net.pterodactylus.sone.core.WebOfTrustUpdater.RemoveContextJob; +import net.pterodactylus.sone.core.WebOfTrustUpdater.WebOfTrustUpdateJob; import net.pterodactylus.sone.freenet.plugin.PluginException; import net.pterodactylus.sone.freenet.wot.OwnIdentity; import net.pterodactylus.sone.freenet.wot.WebOfTrustConnector; @@ -27,9 +29,38 @@ public class WebOfTrustUpdaterTest { private final WebOfTrustConnector webOfTrustConnector = mock(WebOfTrustConnector.class); private final WebOfTrustUpdater webOfTrustUpdater = new WebOfTrustUpdater(webOfTrustConnector); private final OwnIdentity ownIdentity = mock(OwnIdentity.class); + private final WebOfTrustUpdateJob successfulWebOfTrustUpdateJob = createWebOfTrustUpdateJob(true); + private final WebOfTrustUpdateJob failingWebOfTrustUpdateJob = createWebOfTrustUpdateJob(false); private final AddContextJob addContextJob = webOfTrustUpdater.new AddContextJob(ownIdentity, CONTEXT); private final RemoveContextJob removeContextJob = webOfTrustUpdater.new RemoveContextJob(ownIdentity, CONTEXT); + private WebOfTrustUpdateJob createWebOfTrustUpdateJob(final boolean success) { + return webOfTrustUpdater.new WebOfTrustUpdateJob() { + @Override + public void run() { + super.run(); + try { + sleep(100); + } catch (InterruptedException ie1) { + throw new RuntimeException(ie1); + } + finish(success); + } + }; + } + + @Test + public void webOfTrustUpdateJobWaitsUntilFinishedHasBeenCalledAndReturnsSuccess() throws InterruptedException { + new Thread(successfulWebOfTrustUpdateJob).start(); + assertThat(successfulWebOfTrustUpdateJob.waitForCompletion(), is(true)); + } + + @Test + public void webOfTrustUpdateJobWaitsUntilFinishedHasBeenCalledAndReturnsFailure() throws InterruptedException { + new Thread(failingWebOfTrustUpdateJob).start(); + assertThat(failingWebOfTrustUpdateJob.waitForCompletion(), is(false)); + } + @Test public void addContextJobAddsTheContext() throws PluginException { addContextJob.run();