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\""));
|
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
|
@Test
|
||||||
void unsubscribeBulkCommandPrintsResults() {
|
void unsubscribeBulkCommandPrintsResults() {
|
||||||
CliRun run = execute(
|
CliRun run = execute(
|
||||||
@@ -815,6 +891,10 @@ final class MxGatewayCliTests {
|
|||||||
private boolean adviseCalled;
|
private boolean adviseCalled;
|
||||||
private MxValue lastWriteValue;
|
private MxValue lastWriteValue;
|
||||||
private String lastPingMessage;
|
private String lastPingMessage;
|
||||||
|
private long lastReadBulkTimeoutMs;
|
||||||
|
private List<String> lastReadBulkItems;
|
||||||
|
private List<WriteBulkEntry> lastWriteBulkEntries;
|
||||||
|
private List<Write2BulkEntry> lastWrite2BulkEntries;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MxCommandReply pingRaw(String message) {
|
public MxCommandReply pingRaw(String message) {
|
||||||
@@ -912,6 +992,8 @@ final class MxGatewayCliTests {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BulkReadResult> readBulk(int serverHandle, List<String> items, Duration timeout) {
|
public List<BulkReadResult> readBulk(int serverHandle, List<String> items, Duration timeout) {
|
||||||
|
lastReadBulkTimeoutMs = timeout.toMillis();
|
||||||
|
lastReadBulkItems = new ArrayList<>(items);
|
||||||
List<BulkReadResult> results = new ArrayList<>();
|
List<BulkReadResult> results = new ArrayList<>();
|
||||||
for (int index = 0; index < items.size(); index++) {
|
for (int index = 0; index < items.size(); index++) {
|
||||||
results.add(BulkReadResult.newBuilder()
|
results.add(BulkReadResult.newBuilder()
|
||||||
@@ -927,6 +1009,7 @@ final class MxGatewayCliTests {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BulkWriteResult> writeBulk(int serverHandle, List<WriteBulkEntry> entries) {
|
public List<BulkWriteResult> writeBulk(int serverHandle, List<WriteBulkEntry> entries) {
|
||||||
|
lastWriteBulkEntries = new ArrayList<>(entries);
|
||||||
List<BulkWriteResult> results = new ArrayList<>();
|
List<BulkWriteResult> results = new ArrayList<>();
|
||||||
for (WriteBulkEntry entry : entries) {
|
for (WriteBulkEntry entry : entries) {
|
||||||
results.add(BulkWriteResult.newBuilder()
|
results.add(BulkWriteResult.newBuilder()
|
||||||
@@ -940,6 +1023,7 @@ final class MxGatewayCliTests {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BulkWriteResult> write2Bulk(int serverHandle, List<Write2BulkEntry> entries) {
|
public List<BulkWriteResult> write2Bulk(int serverHandle, List<Write2BulkEntry> entries) {
|
||||||
|
lastWrite2BulkEntries = new ArrayList<>(entries);
|
||||||
List<BulkWriteResult> results = new ArrayList<>();
|
List<BulkWriteResult> results = new ArrayList<>();
|
||||||
for (Write2BulkEntry entry : entries) {
|
for (Write2BulkEntry entry : entries) {
|
||||||
results.add(BulkWriteResult.newBuilder()
|
results.add(BulkWriteResult.newBuilder()
|
||||||
|
|||||||
Reference in New Issue
Block a user