@@ -66,4 +66,38 @@ public void sequentialKeys(String provider, Supplier<String> urlSupplier) throws
6666 assertNotEquals (seq1 , seq2 );
6767 assertTrue (n1 < n2 );
6868 }
69+
70+ @ Test (dataProvider = "impl" )
71+ public void testPersistentOrEphemeralPut (String provider , Supplier <String > urlSupplier ) throws Exception {
72+ final String key1 = newKey ();
73+ MetadataStoreExtended store = MetadataStoreExtended .create (urlSupplier .get (), MetadataStoreConfig .builder ().build ());
74+ store .put (key1 , "value-1" .getBytes (), Optional .empty (), EnumSet .noneOf (CreateOption .class )).join ();
75+ var value = store .get (key1 ).join ().get ();
76+ assertEquals (value .getValue (), "value-1" .getBytes ());
77+ // assertFalse(value.getStat().isEphemeral()); // Todo : fix zkStat.getEphemeralOwner() != 0 from test zk
78+ assertTrue (value .getStat ().isFirstVersion ());
79+ var version = value .getStat ().getVersion ();
80+
81+ store .put (key1 , "value-2" .getBytes (), Optional .empty (), EnumSet .noneOf (CreateOption .class )).join ();
82+ value = store .get (key1 ).join ().get ();
83+ assertEquals (value .getValue (), "value-2" .getBytes ());
84+ //assertFalse(value.getStat().isEphemeral()); // Todo : fix zkStat.getEphemeralOwner() != 0 from test zk
85+ assertEquals (value .getStat ().getVersion (), version + 1 );
86+
87+ final String key2 = newKey ();
88+ store .put (key2 , "value-4" .getBytes (), Optional .empty (), EnumSet .of (CreateOption .Ephemeral )).join ();
89+ value = store .get (key2 ).join ().get ();
90+ assertEquals (value .getValue (), "value-4" .getBytes ());
91+ assertTrue (value .getStat ().isEphemeral ());
92+ assertTrue (value .getStat ().isFirstVersion ());
93+ version = value .getStat ().getVersion ();
94+
95+
96+ store .put (key2 , "value-5" .getBytes (), Optional .empty (), EnumSet .of (CreateOption .Ephemeral )).join ();
97+ value = store .get (key2 ).join ().get ();
98+ assertEquals (value .getValue (), "value-5" .getBytes ());
99+ assertTrue (value .getStat ().isEphemeral ());
100+ assertEquals (value .getStat ().getVersion (), version + 1 );
101+ }
102+
69103}
0 commit comments