From 0efa7d8cca9fa859d14d48cf10a7d5ec604229c4 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 16 Jun 2026 16:42:28 -0400 Subject: [PATCH] test(java-cli): cover secured/secured2/bench bulk + close-session --- .../ww/mxgateway/cli/MxGatewayCliTests.java | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/clients/java/zb-mom-ww-mxgateway-cli/src/test/java/com/zb/mom/ww/mxgateway/cli/MxGatewayCliTests.java b/clients/java/zb-mom-ww-mxgateway-cli/src/test/java/com/zb/mom/ww/mxgateway/cli/MxGatewayCliTests.java index 6db3f59..2651723 100644 --- a/clients/java/zb-mom-ww-mxgateway-cli/src/test/java/com/zb/mom/ww/mxgateway/cli/MxGatewayCliTests.java +++ b/clients/java/zb-mom-ww-mxgateway-cli/src/test/java/com/zb/mom/ww/mxgateway/cli/MxGatewayCliTests.java @@ -381,6 +381,107 @@ final class MxGatewayCliTests { assertTrue(out.contains("\"wasSuccessful\":true"), out); } + @Test + void writeSecuredBulkCommandForwardsUserIdsAndPrintsResults() { + FakeClientFactory factory = new FakeClientFactory(); + CliRun run = execute( + factory, + "write-secured-bulk", + "--session-id", "session-cli", + "--server-handle", "42", + "--item-handles", "100,101", + "--type", "int32", + "--values", "10,20", + "--current-user-id", "7", + "--verifier-user-id", "8", + "--json"); + + assertEquals(0, run.exitCode()); + List entries = factory.client.session.lastWriteSecuredBulkEntries; + assertEquals(2, entries.size()); + assertEquals(7, entries.get(0).getCurrentUserId()); + assertEquals(8, entries.get(0).getVerifierUserId()); + assertEquals(7, entries.get(1).getCurrentUserId()); + assertEquals(8, entries.get(1).getVerifierUserId()); + assertEquals(10, entries.get(0).getValue().getInt32Value()); + assertEquals(20, entries.get(1).getValue().getInt32Value()); + String out = run.output(); + assertTrue(out.contains("\"command\":\"write-secured-bulk\""), out); + assertTrue(out.contains("\"itemHandle\":100"), out); + assertTrue(out.contains("\"wasSuccessful\":true"), out); + } + + @Test + void writeSecured2BulkCommandForwardsTimestampAndUserIdsAndPrintsResults() { + FakeClientFactory factory = new FakeClientFactory(); + CliRun run = execute( + factory, + "write-secured2-bulk", + "--session-id", "session-cli", + "--server-handle", "42", + "--item-handles", "100", + "--type", "string", + "--values", "hello", + "--timestamp", "2026-05-20T00:00:00Z", + "--current-user-id", "7", + "--verifier-user-id", "8", + "--json"); + + assertEquals(0, run.exitCode()); + List entries = factory.client.session.lastWriteSecured2BulkEntries; + assertEquals(1, entries.size()); + assertEquals(7, entries.get(0).getCurrentUserId()); + assertEquals(8, entries.get(0).getVerifierUserId()); + assertTrue(entries.get(0).hasTimestampValue(), "expected timestampValue to be set"); + String out = run.output(); + assertTrue(out.contains("\"command\":\"write-secured2-bulk\""), out); + assertTrue(out.contains("\"itemHandle\":100"), out); + assertTrue(out.contains("\"wasSuccessful\":true"), out); + } + + @Test + void benchReadBulkCommandEmitsJsonSchemaKeys() { + FakeClientFactory factory = new FakeClientFactory(); + CliRun run = execute( + factory, + "bench-read-bulk", + "--session-id", "session-cli", + "--server-handle", "42", + "--items", "TestMachine_001.TestInt", + "--iterations", "3", + "--warmup", "0", + "--json"); + + assertEquals(0, run.exitCode()); + String out = run.output(); + assertTrue(out.contains("\"command\":\"bench-read-bulk\""), out); + assertTrue(out.contains("\"iterations\""), out); + assertTrue(out.contains("\"warmup\""), out); + assertTrue(out.contains("\"tagCount\""), out); + assertTrue(out.contains("\"resultCount\""), out); + assertTrue(out.contains("\"successCount\""), out); + assertTrue(out.contains("\"cachedCount\""), out); + assertTrue(out.contains("\"avgMs\""), out); + assertTrue(out.contains("\"minMs\""), out); + assertTrue(out.contains("\"maxMs\""), out); + } + + @Test + void closeSessionCommandPrintsReply() { + FakeClientFactory factory = new FakeClientFactory(); + CliRun run = execute( + factory, + "close-session", + "--session-id", "session-cli", + "--json"); + + assertEquals(0, run.exitCode()); + assertTrue(factory.client.closeCalled); + String out = run.output(); + assertTrue(out.contains("\"command\":\"close-session\""), out); + assertTrue(out.contains("SESSION_STATE_CLOSED"), out); + } + @Test void unsubscribeBulkCommandPrintsResults() { CliRun run = execute( @@ -895,6 +996,8 @@ final class MxGatewayCliTests { private List lastReadBulkItems; private List lastWriteBulkEntries; private List lastWrite2BulkEntries; + private List lastWriteSecuredBulkEntries; + private List lastWriteSecured2BulkEntries; @Override public MxCommandReply pingRaw(String message) { @@ -1037,6 +1140,7 @@ final class MxGatewayCliTests { @Override public List writeSecuredBulk(int serverHandle, List entries) { + lastWriteSecuredBulkEntries = new ArrayList<>(entries); List results = new ArrayList<>(); for (WriteSecuredBulkEntry entry : entries) { results.add(BulkWriteResult.newBuilder() @@ -1050,6 +1154,7 @@ final class MxGatewayCliTests { @Override public List writeSecured2Bulk(int serverHandle, List entries) { + lastWriteSecured2BulkEntries = new ArrayList<>(entries); List results = new ArrayList<>(); for (WriteSecured2BulkEntry entry : entries) { results.add(BulkWriteResult.newBuilder()