From 503d44dc8379b5477d49c152db303861bb9b22e9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Wed, 8 Jan 2025 16:44:43 +0100 Subject: [PATCH] =?utf8?q?=E2=99=BB=EF=B8=8F=20Allow=20easier=20combining?= =?utf8?q?=20of=20different=20parameters?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../fcp/plugin/WebOfTrustPluginTest.java | 46 +++++++++++++++------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/src/test/java/net/pterodactylus/fcp/plugin/WebOfTrustPluginTest.java b/src/test/java/net/pterodactylus/fcp/plugin/WebOfTrustPluginTest.java index 7a29658..cec4542 100644 --- a/src/test/java/net/pterodactylus/fcp/plugin/WebOfTrustPluginTest.java +++ b/src/test/java/net/pterodactylus/fcp/plugin/WebOfTrustPluginTest.java @@ -14,8 +14,12 @@ import org.junit.rules.Timeout; 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; @@ -120,7 +124,7 @@ public class WebOfTrustPluginTest { private TestFcpConnection createConnectionThatCreatesOwnIdentity() { return createFcpConnection(message -> (listener, connection) -> { Map 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)); }); @@ -210,10 +214,7 @@ public class WebOfTrustPluginTest { private TestFcpConnection createConnectionThatDeliversOwnIdentities() { return createFcpConnection(message -> (listener, connection) -> { Map 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)); @@ -234,6 +235,11 @@ public class WebOfTrustPluginTest { assertThrows(FcpException.class, webOfTrustPlugin::getOwnIdentites); } + private final List> 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> 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 { @@ -268,12 +274,9 @@ public class WebOfTrustPluginTest { private TestFcpConnection createConnectionThatDeliversIdentityTrustAndScore() { return createFcpConnection(message -> (listener, connection) -> { Map 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)); @@ -288,6 +291,12 @@ public class WebOfTrustPluginTest { assertThrows(FcpException.class, () -> webOfTrustPlugin.getIdentityTrust(ownIdentity, "other-id")); } + private final List> 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> 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> 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 { @@ -304,12 +313,13 @@ public class WebOfTrustPluginTest { return new WebOfTrustPlugin(new FcpClient(fcpConnection)); } - protected Map createWebOfTrustReplyFields(String message, boolean success, String... fields) { + @SafeVarargs + protected final Map createWebOfTrustReplyFields(String message, boolean success, List>... replies) { Map 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> replyEntries : replies) { + replyEntries.forEach(entry -> replyFields.put("Replies." + entry.getKey(), entry.getValue())); } return replyFields; } @@ -326,6 +336,14 @@ public class WebOfTrustPluginTest { return new TestFcpConnection(messageConsumer); } + protected List> entries(String... replies) { + List> 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); -- 2.7.4