test(java-cli): cover secured/secured2/bench bulk + close-session

This commit is contained in:
Joseph Doherty
2026-06-16 16:42:28 -04:00
parent ea17528767
commit 0efa7d8cca
@@ -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<WriteSecuredBulkEntry> 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<WriteSecured2BulkEntry> 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<String> lastReadBulkItems;
private List<WriteBulkEntry> lastWriteBulkEntries;
private List<Write2BulkEntry> lastWrite2BulkEntries;
private List<WriteSecuredBulkEntry> lastWriteSecuredBulkEntries;
private List<WriteSecured2BulkEntry> lastWriteSecured2BulkEntries;
@Override
public MxCommandReply pingRaw(String message) {
@@ -1037,6 +1140,7 @@ final class MxGatewayCliTests {
@Override
public List<BulkWriteResult> writeSecuredBulk(int serverHandle, List<WriteSecuredBulkEntry> entries) {
lastWriteSecuredBulkEntries = new ArrayList<>(entries);
List<BulkWriteResult> results = new ArrayList<>();
for (WriteSecuredBulkEntry entry : entries) {
results.add(BulkWriteResult.newBuilder()
@@ -1050,6 +1154,7 @@ final class MxGatewayCliTests {
@Override
public List<BulkWriteResult> writeSecured2Bulk(int serverHandle, List<WriteSecured2BulkEntry> entries) {
lastWriteSecured2BulkEntries = new ArrayList<>(entries);
List<BulkWriteResult> results = new ArrayList<>();
for (WriteSecured2BulkEntry entry : entries) {
results.add(BulkWriteResult.newBuilder()