From e8e6fbfaa2f69c0441f7351c731ca7c53674d36e Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sat, 23 Nov 2024 02:21:07 +0100 Subject: [PATCH] =?utf8?q?=E2=9C=85=20Add=20test=20for=20SimpleProgress=20?= =?utf8?q?being=20used=20in=20getRequests()?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../pterodactylus/fcp/highlevel/FcpClientTest.java | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/test/java/net/pterodactylus/fcp/highlevel/FcpClientTest.java b/src/test/java/net/pterodactylus/fcp/highlevel/FcpClientTest.java index cdd37d7..a9c6fc8 100644 --- a/src/test/java/net/pterodactylus/fcp/highlevel/FcpClientTest.java +++ b/src/test/java/net/pterodactylus/fcp/highlevel/FcpClientTest.java @@ -21,6 +21,7 @@ import net.pterodactylus.fcp.PersistentPut; import net.pterodactylus.fcp.PersistentPutDir; import net.pterodactylus.fcp.ProtocolError; import net.pterodactylus.fcp.SSKKeypair; +import net.pterodactylus.fcp.SimpleProgress; import net.pterodactylus.fcp.UnknownNodeIdentifier; import org.hamcrest.Matcher; import org.junit.Rule; @@ -755,6 +756,53 @@ public class FcpClientTest { ); } + @Test + public void getRequestsFillsInDataFromSimpleProgressMessages() throws Exception { + FcpConnection fcpConnection = createFcpConnectionReactingToSingleMessage(named("ListPersistentRequests"), sendRequests(this::sendRequests, this::sendSimpleProgress, this::endListPersistentRequests)); + try (FcpClient fcpClient = new FcpClient(fcpConnection)) { + Collection requests = fcpClient.getRequests(false); + assertThat(requests, containsInAnyOrder( + isRequest( + equalTo("get1"), + matches("total", m -> m.getTotalBlocks() == 123), + matches("required", m -> m.getRequiredBlocks() == 234), + matches("failed", m -> m.getFailedBlocks() == 345), + matches("fatallyFailed", m -> m.getFatallyFailedBlocks() == 456), + matches("succeeded", m -> m.getSucceededBlocks() == 567), + matches("finalized", Request::isFinalizedTotal) + ), + isRequest( + equalTo("put1"), + matches("total", m -> m.getTotalBlocks() == 234), + matches("required", m -> m.getRequiredBlocks() == 345), + matches("failed", m -> m.getFailedBlocks() == 456), + matches("fatallyFailed", m -> m.getFatallyFailedBlocks() == 567), + matches("succeeded", m -> m.getSucceededBlocks() == 678), + matches("finalized", request -> !request.isFinalizedTotal()) + ), + isRequest(equalTo("put2"), matches("total", m -> m.getTotalBlocks() == 0)) + )); + } + } + + private void sendSimpleProgress(FcpListener listener, FcpConnection connection) { + listener.receivedSimpleProgress(connection, createSimpleProgress("get1", 123, 234, 345, 456, 567, true)); + listener.receivedSimpleProgress(connection, createSimpleProgress("put1", 234, 345, 456, 567, 678, false)); + listener.receivedSimpleProgress(connection, createSimpleProgress("unknown", 234, 345, 456, 567, 678, false)); + } + + private SimpleProgress createSimpleProgress(String identifier, int total, int required, int failed, int fatallyFailed, int succeeded, boolean isFinalized) { + return new SimpleProgress(new FcpMessage("SimpleProgress") + .put("Identifier", identifier) + .put("Total", String.valueOf(total)) + .put("Required", String.valueOf(required)) + .put("Failed", String.valueOf(failed)) + .put("FatallyFailed", String.valueOf(fatallyFailed)) + .put("Succeeded", String.valueOf(succeeded)) + .put("FinalizedTotal", String.valueOf(isFinalized)) + ); + } + private void sendRequests(FcpListener listener, FcpConnection connection) { listener.receivedPersistentGet(connection, new PersistentGet(new FcpMessage("PersistentGet").put("Identifier", "get1").put("Global", "false"))); listener.receivedPersistentPut(connection, new PersistentPut(new FcpMessage("PersistentPut").put("Identifier", "put1").put("Global", "false"))); -- 2.7.4