+
+ throw lastError;
+ }
+
+ static void writeNode(YangInstanceIdentifier path, NormalizedNode<?, ?> node, ShardDataTree shardDataTree)
+ throws DataValidationFailedException {
+ DataTreeModification modification = shardDataTree.newModification();
+ modification.merge(path, node);
+ commit(shardDataTree, modification);
+ }
+
+ static void deleteNode(YangInstanceIdentifier path, ShardDataTree shardDataTree)
+ throws DataValidationFailedException {
+ DataTreeModification modification = shardDataTree.newModification();
+ modification.delete(path);
+ commit(shardDataTree, modification);
+ }
+
+ static void commit(ShardDataTree shardDataTree, DataTreeModification modification)
+ throws DataValidationFailedException {
+ shardDataTree.notifyListeners(shardDataTree.commit(modification));
+ }
+
+ static EntityOwnershipChange ownershipChange(final Entity expEntity, final boolean expWasOwner,
+ final boolean expIsOwner, final boolean expHasOwner) {
+ return Matchers.argThat(new ArgumentMatcher<EntityOwnershipChange>() {
+ @Override
+ public boolean matches(Object argument) {
+ EntityOwnershipChange change = (EntityOwnershipChange) argument;
+ return expEntity.equals(change.getEntity()) && expWasOwner == change.wasOwner() &&
+ expIsOwner == change.isOwner() && expHasOwner == change.hasOwner();
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendValue(new EntityOwnershipChange(expEntity, expWasOwner, expIsOwner, expHasOwner));
+ }
+ });
+ }
+
+ static EntityOwnershipChange ownershipChange(final Entity expEntity) {
+ return Matchers.argThat(new ArgumentMatcher<EntityOwnershipChange>() {
+ @Override
+ public boolean matches(Object argument) {
+ EntityOwnershipChange change = (EntityOwnershipChange) argument;
+ return expEntity.equals(change.getEntity());
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendValue(new EntityOwnershipChange(expEntity, false, false, false));
+ }
+ });