diff --git a/src/integration/java/org/arkecosystem/client/api/ApiNodesTest.java b/src/integration/java/org/arkecosystem/client/api/ApiNodesTest.java new file mode 100644 index 0000000..a40b5ca --- /dev/null +++ b/src/integration/java/org/arkecosystem/client/api/ApiNodesTest.java @@ -0,0 +1,30 @@ +package org.arkecosystem.client.api; + +import org.arkecosystem.client.BaseClientTest; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.util.Map; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.hasEntry; +import static org.hamcrest.Matchers.hasKey; + +@SuppressWarnings("unchecked") +public class ApiNodesIntegrationTest extends BaseClientTest { + + @Test + void all() throws IOException { + Map actual = connection.api().apiNodes.all(); + assertThat(actual, hasKey("data")); + assertThat(actual, hasKey("meta")); + } + + @Test + void allWithParams() throws IOException { + Map actual = + connection.api().apiNodes.param("page", 1).param("limit", 100).all(); + assertThat(actual, hasKey("data")); + assertThat(actual, hasKey("meta")); + } +} diff --git a/src/main/java/org/arkecosystem/client/api/Api.java b/src/main/java/org/arkecosystem/client/api/Api.java index 089e3f1..ab8f7ac 100644 --- a/src/main/java/org/arkecosystem/client/api/Api.java +++ b/src/main/java/org/arkecosystem/client/api/Api.java @@ -14,6 +14,7 @@ public class Api { public final Transactions transactions; public final Votes votes; public final Wallets wallets; + public final ApiNodes apiNodes; public Api(Client client) { this.blockchain = new Blockchain(client); @@ -26,5 +27,6 @@ public Api(Client client) { this.transactions = new Transactions(client); this.votes = new Votes(client); this.wallets = new Wallets(client); + this.apiNodes = new ApiNodes(client); } } diff --git a/src/main/java/org/arkecosystem/client/api/ApiNodes.java b/src/main/java/org/arkecosystem/client/api/ApiNodes.java new file mode 100644 index 0000000..1667b59 --- /dev/null +++ b/src/main/java/org/arkecosystem/client/api/ApiNodes.java @@ -0,0 +1,26 @@ +package org.arkecosystem.client.api; + +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; +import org.arkecosystem.client.http.Client; + +public class ApiNodes implements SupportsParams { + private final Client client; + + private final Map params = new LinkedHashMap<>(); + + public ApiNodes(Client client) { + this.client = client; + } + + @Override + public ApiNodes param(String name, Object value) { + params.put(name, value); + return this; + } + + public Map all() throws IOException { + return this.client.get("api-nodes", params); + } +} diff --git a/src/test/java/org/arkecosystem/client/api/ApiNodesTest.java b/src/test/java/org/arkecosystem/client/api/ApiNodesTest.java new file mode 100644 index 0000000..b0fa9dc --- /dev/null +++ b/src/test/java/org/arkecosystem/client/api/ApiNodesTest.java @@ -0,0 +1,27 @@ +package org.arkecosystem.client.api; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.IOException; +import java.util.Map; +import org.arkecosystem.client.Connection; +import org.arkecosystem.client.MockHelper; +import org.junit.jupiter.api.Test; + +public class ApiNodesTest { + + @Test + void all() throws IOException { + Connection connection = MockHelper.connection(); + Map actual = connection.api().apiNodes.all(); + assertTrue((boolean) actual.get("success")); + } + + @Test + void allWithParams() throws IOException { + Connection connection = MockHelper.connection(); + Map actual = + connection.api().apiNodes.param("page", 1).param("limit", 100).all(); + assertTrue((boolean) actual.get("success")); + } +}