test(java-cli): cover read-bulk/write-bulk/write2-bulk round trips
This commit is contained in:
+84
@@ -305,6 +305,82 @@ final class MxGatewayCliTests {
|
||||
assertTrue(run.output().contains("\"tagAddress\":\"TestMachine_002.TestChangingInt\""));
|
||||
}
|
||||
|
||||
// ---- read-bulk / write-bulk / write2-bulk subcommands ----
|
||||
|
||||
@Test
|
||||
void readBulkCommandForwardsTimeoutAndPrintsResults() {
|
||||
FakeClientFactory factory = new FakeClientFactory();
|
||||
CliRun run = execute(
|
||||
factory,
|
||||
"read-bulk",
|
||||
"--session-id", "session-cli",
|
||||
"--server-handle", "42",
|
||||
"--items", "TestMachine_001.TestInt,TestMachine_002.TestInt",
|
||||
"--timeout-ms", "750",
|
||||
"--json");
|
||||
|
||||
assertEquals(0, run.exitCode());
|
||||
assertEquals(750, factory.client.session.lastReadBulkTimeoutMs);
|
||||
String out = run.output();
|
||||
assertTrue(out.contains("\"command\":\"read-bulk\""), out);
|
||||
assertTrue(out.contains("\"tagAddress\":\"TestMachine_001.TestInt\""), out);
|
||||
assertTrue(out.contains("\"tagAddress\":\"TestMachine_002.TestInt\""), out);
|
||||
assertTrue(out.contains("\"itemHandle\""), out);
|
||||
assertTrue(out.contains("\"wasCached\""), out);
|
||||
assertTrue(out.contains("\"quality\""), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void writeBulkCommandParsesTypedValuesAndPrintsResults() {
|
||||
FakeClientFactory factory = new FakeClientFactory();
|
||||
CliRun run = execute(
|
||||
factory,
|
||||
"write-bulk",
|
||||
"--session-id", "session-cli",
|
||||
"--server-handle", "42",
|
||||
"--item-handles", "100,101",
|
||||
"--type", "int32",
|
||||
"--values", "111,222",
|
||||
"--user-id", "5",
|
||||
"--json");
|
||||
|
||||
assertEquals(0, run.exitCode());
|
||||
List<WriteBulkEntry> entries = factory.client.session.lastWriteBulkEntries;
|
||||
assertEquals(2, entries.size());
|
||||
assertEquals(111, entries.get(0).getValue().getInt32Value());
|
||||
assertEquals(222, entries.get(1).getValue().getInt32Value());
|
||||
assertEquals(5, entries.get(0).getUserId());
|
||||
assertEquals(5, entries.get(1).getUserId());
|
||||
String out = run.output();
|
||||
assertTrue(out.contains("\"command\":\"write-bulk\""), out);
|
||||
assertTrue(out.contains("\"itemHandle\":100"), out);
|
||||
assertTrue(out.contains("\"wasSuccessful\":true"), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void write2BulkCommandForwardsTimestampAndPrintsResults() {
|
||||
FakeClientFactory factory = new FakeClientFactory();
|
||||
CliRun run = execute(
|
||||
factory,
|
||||
"write2-bulk",
|
||||
"--session-id", "session-cli",
|
||||
"--server-handle", "42",
|
||||
"--item-handles", "100",
|
||||
"--type", "string",
|
||||
"--values", "hello",
|
||||
"--timestamp", "2026-05-20T00:00:00Z",
|
||||
"--json");
|
||||
|
||||
assertEquals(0, run.exitCode());
|
||||
List<Write2BulkEntry> entries = factory.client.session.lastWrite2BulkEntries;
|
||||
assertEquals(1, entries.size());
|
||||
assertTrue(entries.get(0).hasTimestampValue(), "expected timestampValue to be set");
|
||||
String out = run.output();
|
||||
assertTrue(out.contains("\"command\":\"write2-bulk\""), out);
|
||||
assertTrue(out.contains("\"itemHandle\":100"), out);
|
||||
assertTrue(out.contains("\"wasSuccessful\":true"), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void unsubscribeBulkCommandPrintsResults() {
|
||||
CliRun run = execute(
|
||||
@@ -815,6 +891,10 @@ final class MxGatewayCliTests {
|
||||
private boolean adviseCalled;
|
||||
private MxValue lastWriteValue;
|
||||
private String lastPingMessage;
|
||||
private long lastReadBulkTimeoutMs;
|
||||
private List<String> lastReadBulkItems;
|
||||
private List<WriteBulkEntry> lastWriteBulkEntries;
|
||||
private List<Write2BulkEntry> lastWrite2BulkEntries;
|
||||
|
||||
@Override
|
||||
public MxCommandReply pingRaw(String message) {
|
||||
@@ -912,6 +992,8 @@ final class MxGatewayCliTests {
|
||||
|
||||
@Override
|
||||
public List<BulkReadResult> readBulk(int serverHandle, List<String> items, Duration timeout) {
|
||||
lastReadBulkTimeoutMs = timeout.toMillis();
|
||||
lastReadBulkItems = new ArrayList<>(items);
|
||||
List<BulkReadResult> results = new ArrayList<>();
|
||||
for (int index = 0; index < items.size(); index++) {
|
||||
results.add(BulkReadResult.newBuilder()
|
||||
@@ -927,6 +1009,7 @@ final class MxGatewayCliTests {
|
||||
|
||||
@Override
|
||||
public List<BulkWriteResult> writeBulk(int serverHandle, List<WriteBulkEntry> entries) {
|
||||
lastWriteBulkEntries = new ArrayList<>(entries);
|
||||
List<BulkWriteResult> results = new ArrayList<>();
|
||||
for (WriteBulkEntry entry : entries) {
|
||||
results.add(BulkWriteResult.newBuilder()
|
||||
@@ -940,6 +1023,7 @@ final class MxGatewayCliTests {
|
||||
|
||||
@Override
|
||||
public List<BulkWriteResult> write2Bulk(int serverHandle, List<Write2BulkEntry> entries) {
|
||||
lastWrite2BulkEntries = new ArrayList<>(entries);
|
||||
List<BulkWriteResult> results = new ArrayList<>();
|
||||
for (Write2BulkEntry entry : entries) {
|
||||
results.add(BulkWriteResult.newBuilder()
|
||||
|
||||
Reference in New Issue
Block a user