}
+ public static class AddContextTests extends Common {
+
+ @Test
+ public void addContextSendsTheCorrectCommand() throws IOException, FcpException {
+ TestFcpConnection fcpConnection = createConnectionThatSendsContextAdded();
+ WebOfTrustPlugin webOfTrustPlugin = createWebOfTrustPlugin(fcpConnection);
+ webOfTrustPlugin.addContext(ownIdentity, "TestContext");
+ assertThat(fcpConnection.sentMessages.get(0), allOf(
+ isNamed(equalTo("FCPPluginMessage")),
+ hasField("Identifier", notNullValue()),
+ hasField("PluginName", equalTo("plugins.WebOfTrust.WebOfTrust")),
+ hasField("Param.Message", equalTo("AddContext")),
+ hasField("Param.Identity", equalTo("own-id")),
+ hasField("Param.Context", equalTo("TestContext"))
+ ));
+ }
+
+ @Test
+ public void addContextThrowsExceptionWhenDifferentReplyIsSentByPlugin() {
+ FcpConnection fcpConnection = createConnectionThatSendsOtherMessage();
+ WebOfTrustPlugin webOfTrustPlugin = createWebOfTrustPlugin(fcpConnection);
+ assertThrows(FcpException.class, () -> webOfTrustPlugin.addContext(ownIdentity, "TestContext"));
+ }
+
+ private TestFcpConnection createConnectionThatSendsContextAdded() {
+ return createConnection("ContextAdded");
+ }
+
+ private final OwnIdentity ownIdentity = new OwnIdentity("own-id", "Own ID", "or", "ir", emptyList(), emptyMap());
+
+ }
+
private static class Common {
@SafeVarargs