X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fentityownership%2FAbstractEntityOwnershipTest.java;h=9315cc2ddef123a21690be402f8e6b55b5b9e8cd;hb=88f763ec4ec2bcc1e0fd414ccb2f105f7490b8e9;hp=3134a6eedd4a540721cc8c03b88d93411585b092;hpb=a4d9810d7211097f2803174d0c23a27b53dbc9d2;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/AbstractEntityOwnershipTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/AbstractEntityOwnershipTest.java index 3134a6eedd..9315cc2dde 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/AbstractEntityOwnershipTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/AbstractEntityOwnershipTest.java @@ -23,9 +23,14 @@ import com.google.common.base.Optional; import com.google.common.base.Stopwatch; import com.google.common.util.concurrent.Uninterruptibles; import java.util.concurrent.TimeUnit; +import org.hamcrest.Description; import org.junit.Assert; +import org.mockito.ArgumentMatcher; +import org.mockito.Matchers; import org.opendaylight.controller.cluster.datastore.AbstractActorTest; import org.opendaylight.controller.cluster.datastore.ShardDataTree; +import org.opendaylight.controller.md.sal.common.api.clustering.Entity; +import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipChange; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.EntityOwners; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.entity.owners.EntityType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.clustering.entity.owners.rev150804.entity.owners.entity.type.entity.Candidate; @@ -40,7 +45,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; @@ -151,25 +155,52 @@ public class AbstractEntityOwnershipTest extends AbstractActorTest { static void writeNode(YangInstanceIdentifier path, NormalizedNode node, ShardDataTree shardDataTree) throws DataValidationFailedException { - DataTreeModification modification = shardDataTree.getDataTree().takeSnapshot().newModification(); + DataTreeModification modification = shardDataTree.newModification(); modification.merge(path, node); commit(shardDataTree, modification); } static void deleteNode(YangInstanceIdentifier path, ShardDataTree shardDataTree) throws DataValidationFailedException { - DataTreeModification modification = shardDataTree.getDataTree().takeSnapshot().newModification(); + DataTreeModification modification = shardDataTree.newModification(); modification.delete(path); commit(shardDataTree, modification); } static void commit(ShardDataTree shardDataTree, DataTreeModification modification) throws DataValidationFailedException { - modification.ready(); + 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() { + @Override + public boolean matches(Object argument) { + EntityOwnershipChange change = (EntityOwnershipChange) argument; + return expEntity.equals(change.getEntity()) && expWasOwner == change.wasOwner() && + expIsOwner == change.isOwner() && expHasOwner == change.hasOwner(); + } - shardDataTree.getDataTree().validate(modification); - DataTreeCandidateTip candidate = shardDataTree.getDataTree().prepare(modification); - shardDataTree.getDataTree().commit(candidate); - shardDataTree.notifyListeners(candidate); + @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() { + @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)); + } + }); } }