+
+ // Test with participating shard names.
+
+ final TransactionIdentifier tx2 = nextTransactionId();
+ batched = new BatchedModifications(tx2, (short)10000);
+ final SortedSet<String> shardNames = ImmutableSortedSet.of("one", "two");
+ batched.setReady(Optional.of(shardNames));
+ batched.setDoCommitOnReady(true);
+ assertEquals("isReady", true, batched.isReady());
+
+ clone = (BatchedModifications) SerializationUtils.clone((Serializable) batched.toSerializable());
+
+ assertEquals("getVersion", DataStoreVersions.CURRENT_VERSION, clone.getVersion());
+ assertEquals("getTransactionID", tx2, clone.getTransactionId());
+ assertEquals("isReady", true, clone.isReady());
+ assertEquals("isDoCommitOnReady", true, clone.isDoCommitOnReady());
+ assertEquals("participatingShardNames present", true, clone.getParticipatingShardNames().isPresent());
+ assertEquals("participatingShardNames", shardNames, clone.getParticipatingShardNames().get());
+ assertEquals("getModifications size", 0, clone.getModifications().size());
+
+ // Test not ready.
+
+ batched = new BatchedModifications(tx2, DataStoreVersions.CURRENT_VERSION);
+
+ clone = (BatchedModifications) SerializationUtils.clone((Serializable) batched.toSerializable());
+
+ assertEquals("getVersion", DataStoreVersions.CURRENT_VERSION, clone.getVersion());
+ assertEquals("getTransactionID", tx2, clone.getTransactionId());
+ assertEquals("isReady", false, clone.isReady());
+ assertEquals("getModifications size", 0, clone.getModifications().size());
+
+ // Test pre-Flourine
+
+ batched = new BatchedModifications(tx2, DataStoreVersions.BORON_VERSION);
+ batched.addModification(new WriteModification(writePath, writeData));
+ batched.setReady(Optional.of(ImmutableSortedSet.of("one", "two")));
+
+ clone = (BatchedModifications) SerializationUtils.clone((Serializable) batched.toSerializable());
+
+ assertEquals("getVersion", DataStoreVersions.BORON_VERSION, clone.getVersion());
+ assertEquals("getTransactionID", tx2, clone.getTransactionId());
+ assertEquals("isReady", true, clone.isReady());
+ assertEquals("participatingShardNames present", false, clone.getParticipatingShardNames().isPresent());
+ assertEquals("getModifications size", 1, clone.getModifications().size());