X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FWebOfTrustUpdaterTest.java;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FWebOfTrustUpdaterTest.java;h=0589d9d4816b88c9061ec0bba2ee869affeec4b7;hp=0000000000000000000000000000000000000000;hb=d249bcc142a9e351e1774ac326ff5e961e1813d9;hpb=4b07fb935a4f0e756a379d96c90824df093ac988 diff --git a/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java b/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java new file mode 100644 index 0000000..0589d9d --- /dev/null +++ b/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java @@ -0,0 +1,48 @@ +package net.pterodactylus.sone.core; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + +import net.pterodactylus.sone.core.WebOfTrustUpdater.AddContextJob; +import net.pterodactylus.sone.freenet.plugin.PluginException; +import net.pterodactylus.sone.freenet.wot.OwnIdentity; +import net.pterodactylus.sone.freenet.wot.WebOfTrustConnector; + +import org.junit.Test; + +/** + * Unit test for {@link WebOfTrustUpdater} and its subclasses. + * + * @author David ‘Bombe’ Roden + */ +public class WebOfTrustUpdaterTest { + + private static final String CONTEXT = "test-context"; + private final WebOfTrustConnector webOfTrustConnector = mock(WebOfTrustConnector.class); + private final WebOfTrustUpdater webOfTrustUpdater = new WebOfTrustUpdater(webOfTrustConnector); + private final OwnIdentity ownIdentity = mock(OwnIdentity.class); + private final AddContextJob addContextJob = webOfTrustUpdater.new AddContextJob(ownIdentity, CONTEXT); + + @Test + public void addContextJobAddsTheContext() throws PluginException { + addContextJob.run(); + verify(webOfTrustConnector).addContext(eq(ownIdentity), eq(CONTEXT)); + verify(ownIdentity).addContext(eq(CONTEXT)); + assertThat(addContextJob.waitForCompletion(), is(true)); + } + + @Test + public void exceptionWhileAddingAContextIsExposed() throws PluginException { + doThrow(PluginException.class).when(webOfTrustConnector).addContext(eq(ownIdentity), eq(CONTEXT)); + addContextJob.run(); + verify(webOfTrustConnector).addContext(eq(ownIdentity), eq(CONTEXT)); + verify(ownIdentity, never()).addContext(eq(CONTEXT)); + assertThat(addContextJob.waitForCompletion(), is(false)); + } + +}