|
17 | 17 |
|
18 | 18 | package org.apache.ignite.internal.runner.app.client; |
19 | 19 |
|
| 20 | +import static org.awaitility.Awaitility.await; |
20 | 21 | import static org.junit.jupiter.api.Assertions.assertEquals; |
21 | 22 |
|
| 23 | +import java.time.Duration; |
| 24 | +import org.apache.ignite.client.IgniteClient; |
| 25 | +import org.apache.ignite.client.IgniteClient.Builder; |
| 26 | +import org.apache.ignite.internal.client.TcpIgniteClient; |
| 27 | +import org.apache.ignite.internal.hlc.HybridTimestampTracker; |
22 | 28 | import org.apache.ignite.table.Table; |
23 | 29 | import org.apache.ignite.table.Tuple; |
24 | 30 | import org.apache.ignite.tx.Transaction; |
@@ -65,4 +71,19 @@ public void test() { |
65 | 71 | assertEquals("client value", directClientValue, directClientValue); |
66 | 72 | assertEquals("client value", directSrvValue, directSrvValue); |
67 | 73 | } |
| 74 | + |
| 75 | + @Test |
| 76 | + public void testObservableTsUpdatesOnHeartbeat() { |
| 77 | + Builder clientBuilder = IgniteClient.builder() |
| 78 | + .addresses(getClientAddresses().toArray(new String[0])) |
| 79 | + .heartbeatInterval(100); |
| 80 | + |
| 81 | + try (IgniteClient client = clientBuilder.build()) { |
| 82 | + HybridTimestampTracker tsTracker = ((TcpIgniteClient) client).channel().observableTimestamp(); |
| 83 | + |
| 84 | + long initialTs = tsTracker.getLong(); |
| 85 | + |
| 86 | + await().atMost(Duration.ofSeconds(5)).until(() -> tsTracker.getLong() > initialTs); |
| 87 | + } |
| 88 | + } |
68 | 89 | } |
0 commit comments