+
+ 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 DOMEntityOwnershipChange ownershipChange(final DOMEntity expEntity, final boolean expWasOwner,
+ final boolean expIsOwner, final boolean expHasOwner) {
+ return Matchers.argThat(new ArgumentMatcher<DOMEntityOwnershipChange>() {
+ @Override
+ public boolean matches(Object argument) {
+ DOMEntityOwnershipChange change = (DOMEntityOwnershipChange) argument;
+ return expEntity.equals(change.getEntity()) && expWasOwner == change.getState().wasOwner() &&
+ expIsOwner == change.getState().isOwner() && expHasOwner == change.getState().hasOwner();
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendValue(new DOMEntityOwnershipChange(expEntity, EntityOwnershipChangeState.from(
+ expWasOwner, expIsOwner, expHasOwner)));
+ }
+ });
+ }
+
+ static DOMEntityOwnershipChange ownershipChange(final DOMEntity expEntity) {
+ return Matchers.argThat(new ArgumentMatcher<DOMEntityOwnershipChange>() {
+ @Override
+ public boolean matches(Object argument) {
+ DOMEntityOwnershipChange change = (DOMEntityOwnershipChange) argument;
+ return expEntity.equals(change.getEntity());
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendValue(new DOMEntityOwnershipChange(expEntity, EntityOwnershipChangeState.from(
+ false, false, false)));
+ }
+ });