import org.junit.runner.RunWith;
import java.io.IOException;
+import java.util.AbstractMap.SimpleEntry;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.Function;
private TestFcpConnection createConnectionThatCreatesOwnIdentity() {
return createFcpConnection(message -> (listener, connection) -> {
Map<String, String> fields = createWebOfTrustReplyFields("IdentityCreated", true,
- "ID", "identity", "InsertURI", "insert-uri", "RequestURI", "request-uri");
+ entries("ID", "identity", "InsertURI", "insert-uri", "RequestURI", "request-uri"));
FcpMessage replyMessage = createPluginReply(message, fields);
listener.receivedFCPPluginReply(connection, new FCPPluginReply(replyMessage, null));
});
private TestFcpConnection createConnectionThatDeliversOwnIdentities() {
return createFcpConnection(message -> (listener, connection) -> {
Map<String, String> fields = createWebOfTrustReplyFields("OwnIdentities", true,
- "Amount", "2", "Identity0", "identity-0", "Nickname0", "Nick 0", "RequestURI0", "request-uri-0", "InsertURI0", "insert-uri-0",
- "Contexts0.Context0", "test-context-1", "Contexts0.Context1", "test-context-2", "Properties0.Property0.Name", "prop1", "Properties0.Property0.Value", "value1", "Properties0.Property1.Name", "prop2", "Properties0.Property1.Value", "value2",
- "Identity1", "identity-1", "Nickname1", "Nick 1", "RequestURI1", "request-uri-1", "InsertURI1", "insert-uri-1",
- "Contexts1.Context0", "test-context-2", "Contexts1.Context1", "test-context-3", "Properties1.Property0.Name", "prop3", "Properties1.Property0.Value", "value3", "Properties1.Property1.Name", "prop4", "Properties1.Property1.Value", "value4"
+ entries("Amount", "2"), identity1, identity2
);
FcpMessage replyMessage = createPluginReply(message, fields);
listener.receivedFCPPluginReply(connection, new FCPPluginReply(replyMessage, null));
assertThrows(FcpException.class, webOfTrustPlugin::getOwnIdentites);
}
+ private final List<Entry<String, String>> identity1 = entries("Identity0", "identity-0", "Nickname0", "Nick 0", "RequestURI0", "request-uri-0", "InsertURI0", "insert-uri-0",
+ "Contexts0.Context0", "test-context-1", "Contexts0.Context1", "test-context-2", "Properties0.Property0.Name", "prop1", "Properties0.Property0.Value", "value1", "Properties0.Property1.Name", "prop2", "Properties0.Property1.Value", "value2");
+ private final List<Entry<String, String>> identity2 = entries("Identity1", "identity-1", "Nickname1", "Nick 1", "RequestURI1", "request-uri-1", "InsertURI1", "insert-uri-1",
+ "Contexts1.Context0", "test-context-2", "Contexts1.Context1", "test-context-3", "Properties1.Property0.Name", "prop3", "Properties1.Property0.Value", "value3", "Properties1.Property1.Name", "prop4", "Properties1.Property1.Value", "value4");
+
}
public static class GetIdentityTrustTests extends Common {
private TestFcpConnection createConnectionThatDeliversIdentityTrustAndScore() {
return createFcpConnection(message -> (listener, connection) -> {
Map<String, String> fields = createWebOfTrustReplyFields("Identity", true,
- "Identities.Amount", "1",
- "Identities.0.Type", "Identity", "Identities.0.Nickname", "Nick Name", "Identities.0.RequestURI", "nick-pub", "Identities.0.ID", "nick-id", "Identities.0.VersionID", "0-0", "Identities.0.PublishesTrustList", "true", "Identities.0.CurrentEditionFetchState", "Fetched",
- "Identities.0.Contexts.0.Name", "context-1", "Identities.0.Contexts.1.Name", "context-2", "Identities.0.Contexts.Amount", "2",
- "Identities.0.Properties.0.Name", "prop1", "Identities.0.Properties.0.Value", "value1", "Identities.0.Properties.1.Name", "prop2", "Identities.0.Properties.1.Value", "value2", "Identities.0.Properties.Amount", "2",
- "Trusts.Amount", "1", "Trusts.0.Truster", "own-id", "Trusts.0.Trustee", "nick-id", "Trusts.0.Value", "56", "Trusts.0.Comment", "some trust", "Trusts.0.TrusterEdition", "123", "Trusts.0.VersionID", "1-1",
- "Scores.Amount", "1", "Scores.0.Truster", "own-id", "Scores.0.Trustee", "nick-id", "Scores.0.Capacity", "40", "Scores.0.Rank", "1", "Scores.0.Value", "56", "Scores.0.VersionID", "2-2"
+ entries("Identities.Amount", "1"), identityNick0,
+ entries("Trusts.Amount", "1"), trustValue,
+ entries("Scores.Amount", "1"), scoreValue
);
FcpMessage replyMessage = createPluginReply(message, fields);
listener.receivedFCPPluginReply(connection, new FCPPluginReply(replyMessage, null));
assertThrows(FcpException.class, () -> webOfTrustPlugin.getIdentityTrust(ownIdentity, "other-id"));
}
+ private final List<Entry<String, String>> identityNick0 = entries("Identities.0.Type", "Identity", "Identities.0.Nickname", "Nick Name", "Identities.0.RequestURI", "nick-pub", "Identities.0.ID", "nick-id", "Identities.0.VersionID", "0-0", "Identities.0.PublishesTrustList", "true", "Identities.0.CurrentEditionFetchState", "Fetched",
+ "Identities.0.Contexts.0.Name", "context-1", "Identities.0.Contexts.1.Name", "context-2", "Identities.0.Contexts.Amount", "2",
+ "Identities.0.Properties.0.Name", "prop1", "Identities.0.Properties.0.Value", "value1", "Identities.0.Properties.1.Name", "prop2", "Identities.0.Properties.1.Value", "value2", "Identities.0.Properties.Amount", "2");
+ private final List<Entry<String, String>> trustValue = entries("Trusts.0.Truster", "own-id", "Trusts.0.Trustee", "nick-id", "Trusts.0.Value", "56", "Trusts.0.Comment", "some trust", "Trusts.0.TrusterEdition", "123", "Trusts.0.VersionID", "1-1");
+ private final List<Entry<String, String>> scoreValue = entries("Scores.0.Truster", "own-id", "Scores.0.Trustee", "nick-id", "Scores.0.Capacity", "40", "Scores.0.Rank", "1", "Scores.0.Value", "56", "Scores.0.VersionID", "2-2");
+
}
private static class Common {
return new WebOfTrustPlugin(new FcpClient(fcpConnection));
}
- protected Map<String, String> createWebOfTrustReplyFields(String message, boolean success, String... fields) {
+ @SafeVarargs
+ protected final Map<String, String> createWebOfTrustReplyFields(String message, boolean success, List<Entry<String, String>>... replies) {
Map<String, String> replyFields = new HashMap<>();
replyFields.put("Success", String.valueOf(success));
replyFields.put("Replies.Message", message);
- for (int fieldIndex = 0; fieldIndex < fields.length - 1; fieldIndex += 2) {
- replyFields.put("Replies." + fields[fieldIndex], fields[fieldIndex + 1]);
+ for (List<Entry<String, String>> replyEntries : replies) {
+ replyEntries.forEach(entry -> replyFields.put("Replies." + entry.getKey(), entry.getValue()));
}
return replyFields;
}
return new TestFcpConnection(messageConsumer);
}
+ protected List<Entry<String, String>> entries(String... replies) {
+ List<Entry<String, String>> entries = new ArrayList<>();
+ for (int replyIndex = 0; replyIndex < replies.length - 1; replyIndex += 2) {
+ entries.add(new SimpleEntry<>(replies[replyIndex], replies[replyIndex + 1]));
+ }
+ return entries;
+ }
+
@Rule
public final Timeout timeout = Timeout.seconds(5);