X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FWebOfTrustUpdaterTest.java;h=bc918e006239a38a4745ab85647fe9b1f01fef2d;hp=40230ab17d7e1019a1ef45f8b343f4b960289df0;hb=43364d6d488aede562d4ca0d2ec6a0e04f125110;hpb=8a6928885e118595ee49aec242f9747c0ea7fe39 diff --git a/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java b/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java index 40230ab..bc918e0 100644 --- a/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java +++ b/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java @@ -15,11 +15,15 @@ import static org.mockito.Mockito.when; import net.pterodactylus.sone.core.WebOfTrustUpdater.AddContextJob; import net.pterodactylus.sone.core.WebOfTrustUpdater.RemoveContextJob; import net.pterodactylus.sone.core.WebOfTrustUpdater.SetPropertyJob; +import net.pterodactylus.sone.core.WebOfTrustUpdater.SetTrustJob; import net.pterodactylus.sone.core.WebOfTrustUpdater.WebOfTrustContextUpdateJob; import net.pterodactylus.sone.core.WebOfTrustUpdater.WebOfTrustUpdateJob; import net.pterodactylus.sone.freenet.plugin.PluginException; +import net.pterodactylus.sone.freenet.wot.Identity; import net.pterodactylus.sone.freenet.wot.OwnIdentity; +import net.pterodactylus.sone.freenet.wot.Trust; import net.pterodactylus.sone.freenet.wot.WebOfTrustConnector; +import net.pterodactylus.sone.freenet.wot.WebOfTrustException; import org.junit.Test; @@ -31,6 +35,9 @@ import org.junit.Test; public class WebOfTrustUpdaterTest { private static final String CONTEXT = "test-context"; + private static final Integer SCORE = 50; + private static final Integer OTHER_SCORE = 25; + private static final String TRUST_COMMENT = "set in a test"; private final WebOfTrustConnector webOfTrustConnector = mock(WebOfTrustConnector.class); private final WebOfTrustUpdater webOfTrustUpdater = new WebOfTrustUpdater(webOfTrustConnector); private final OwnIdentity ownIdentity = when(mock(OwnIdentity.class).getId()).thenReturn("own-identity-id").getMock(); @@ -39,6 +46,7 @@ public class WebOfTrustUpdaterTest { private final WebOfTrustContextUpdateJob contextUpdateJob = webOfTrustUpdater.new WebOfTrustContextUpdateJob(ownIdentity, CONTEXT); private final AddContextJob addContextJob = webOfTrustUpdater.new AddContextJob(ownIdentity, CONTEXT); private final RemoveContextJob removeContextJob = webOfTrustUpdater.new RemoveContextJob(ownIdentity, CONTEXT); + private final Identity trustee = when(mock(Identity.class).getId()).thenReturn("trustee-id").getMock(); private WebOfTrustUpdateJob createWebOfTrustUpdateJob(final boolean success) { return webOfTrustUpdater.new WebOfTrustUpdateJob() { @@ -221,4 +229,79 @@ public class WebOfTrustUpdaterTest { assertThat(firstSetPropertyJob, not(is(secondSetPropertyJob))); } + @Test + public void setTrustJobSetsTrust() throws PluginException { + SetTrustJob setTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT); + setTrustJob.run(); + verify(webOfTrustConnector).setTrust(eq(ownIdentity), eq(trustee), eq(SCORE), eq(TRUST_COMMENT)); + verify(trustee).setTrust(eq(ownIdentity), eq(new Trust(SCORE, null, 0))); + assertThat(setTrustJob.waitForCompletion(), is(true)); + } + + @Test + public void settingNullTrustRemovesTrust() throws WebOfTrustException { + SetTrustJob setTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, null, TRUST_COMMENT); + setTrustJob.run(); + verify(webOfTrustConnector).removeTrust(eq(ownIdentity), eq(trustee)); + verify(trustee).removeTrust(eq(ownIdentity)); + assertThat(setTrustJob.waitForCompletion(), is(true)); + } + + @Test + public void exceptionWhileSettingTrustIsCaught() throws PluginException { + doThrow(PluginException.class).when(webOfTrustConnector).setTrust(eq(ownIdentity), eq(trustee), eq(SCORE), eq(TRUST_COMMENT)); + SetTrustJob setTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT); + setTrustJob.run(); + verify(webOfTrustConnector).setTrust(eq(ownIdentity), eq(trustee), eq(SCORE), eq(TRUST_COMMENT)); + verify(trustee, never()).setTrust(eq(ownIdentity), eq(new Trust(SCORE, null, 0))); + assertThat(setTrustJob.waitForCompletion(), is(false)); + } + + @Test + public void setTrustJobsWithDifferentClassesAreNotEqual() { + SetTrustJob firstSetTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT); + SetTrustJob secondSetTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT) { + }; + assertThat(firstSetTrustJob, not(is(secondSetTrustJob))); + assertThat(secondSetTrustJob, not(is(firstSetTrustJob))); + } + + @Test + public void setTrustJobsWithDifferentTrustersAreNotEqual() { + SetTrustJob firstSetTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT); + SetTrustJob secondSetTrustJob = webOfTrustUpdater.new SetTrustJob(mock(OwnIdentity.class), trustee, SCORE, TRUST_COMMENT); + assertThat(firstSetTrustJob, not(is(secondSetTrustJob))); + assertThat(secondSetTrustJob, not(is(firstSetTrustJob))); + } + + @Test + public void setTrustJobsWithDifferentTrusteesAreNotEqual() { + SetTrustJob firstSetTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT); + SetTrustJob secondSetTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, mock(Identity.class), SCORE, TRUST_COMMENT); + assertThat(firstSetTrustJob, not(is(secondSetTrustJob))); + assertThat(secondSetTrustJob, not(is(firstSetTrustJob))); + } + + @Test + public void setTrustJobsWithDifferentScoreAreEqual() { + SetTrustJob firstSetTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT); + SetTrustJob secondSetTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, OTHER_SCORE, TRUST_COMMENT); + assertThat(firstSetTrustJob, is(secondSetTrustJob)); + assertThat(secondSetTrustJob, is(firstSetTrustJob)); + assertThat(firstSetTrustJob.hashCode(), is(secondSetTrustJob.hashCode())); + } + + @Test + public void setTrustJobDoesNotEqualNull() { + SetTrustJob setTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT); + assertThat(setTrustJob, not(is((Object) null))); + } + + @Test + public void toStringOfSetTrustJobContainsIdsOfTrusterAndTrustee() { + SetTrustJob setTrustJob = webOfTrustUpdater.new SetTrustJob(ownIdentity, trustee, SCORE, TRUST_COMMENT); + assertThat(setTrustJob.toString(), containsString(ownIdentity.getId())); + assertThat(setTrustJob.toString(), containsString(trustee.getId())); + } + }