reiabreu commented on code in PR #8714:
URL: https://github.com/apache/storm/pull/8714#discussion_r3330172186
##########
storm-server/src/test/java/org/apache/storm/cluster/ClusterStateTest.java:
##########
@@ -482,4 +488,83 @@ public void testClusterAuthentication() throws Exception {
}
}
+ @Test
+ public void testGetVersion() throws Exception {
+ try (InProcessZookeeper zk = new InProcessZookeeper()) {
+ IStateStorage state = mkState(zk.getPort());
+
+ // absent node -> null version
+ assertNull(state.get_version("/v", false));
+
+ // first set_data creates the node at dataVersion 0
+ state.set_data("/v", barr(1), OPEN_ACL);
+ assertEquals(Integer.valueOf(0), state.get_version("/v", false));
+
+ // each subsequent update bumps the version
+ state.set_data("/v", barr(2), OPEN_ACL);
+ assertEquals(Integer.valueOf(1), state.get_version("/v", false));
+ state.set_data("/v", barr(3), OPEN_ACL);
+ assertEquals(Integer.valueOf(2), state.get_version("/v", false));
+
+ // deleted -> null again
+ state.delete_node("/v");
+ assertNull(state.get_version("/v", false));
+
+ state.close();
+ }
+ }
+
+ @Test
+ public void testGetDataWithVersion() throws Exception {
+ try (InProcessZookeeper zk = new InProcessZookeeper()) {
+ IStateStorage state = mkState(zk.getPort());
+
+ // absent node -> null
+ assertNull(state.get_data_with_version("/v", false));
+
+ // created -> data with dataVersion 0
+ state.set_data("/v", barr(1), OPEN_ACL);
+ VersionedData<byte[]> v0 = state.get_data_with_version("/v",
false);
+ assertNotNull(v0);
+ assertArrayEquals(barr(1), v0.getData());
+ assertEquals(0, v0.getVersion());
+
+ // updated -> new data and bumped version, consistent with
get_version
+ state.set_data("/v", barr(2, 3), OPEN_ACL);
+ VersionedData<byte[]> v1 = state.get_data_with_version("/v",
false);
+ assertNotNull(v1);
+ assertArrayEquals(barr(2, 3), v1.getData());
+ assertEquals(1, v1.getVersion());
+ assertEquals(Integer.valueOf(1), state.get_version("/v", false));
+
+ // deleted -> null
+ state.delete_node("/v");
+ assertNull(state.get_data_with_version("/v", false));
+
+ state.close();
+ }
+ }
Review Comment:
There is no test case that does: getData(path, watch=true) on a missing
node, then creates the node, and verifies the callback was triggered,
What do you thinking about adding it?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]