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=3134a6eedd4a540721cc8c03b88d93411585b092;hb=a4d9810d7211097f2803174d0c23a27b53dbc9d2;hp=525e03bb37b9047c7f73119116d4ee2223853f44;hpb=a785966182ba80592f99be5a27a9af1d4c2ac37f;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 525e03bb37..3134a6eedd 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 @@ -51,7 +51,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailed */ public class AbstractEntityOwnershipTest extends AbstractActorTest { protected void verifyEntityCandidate(NormalizedNode node, String entityType, - YangInstanceIdentifier entityId, String candidateName) { + YangInstanceIdentifier entityId, String candidateName, boolean expectPresent) { try { assertNotNull("Missing " + EntityOwners.QNAME.toString(), node); assertTrue(node instanceof ContainerNode); @@ -59,24 +59,25 @@ public class AbstractEntityOwnershipTest extends AbstractActorTest { ContainerNode entityOwnersNode = (ContainerNode) node; MapEntryNode entityTypeEntry = getMapEntryNodeChild(entityOwnersNode, EntityType.QNAME, - ENTITY_TYPE_QNAME, entityType); + ENTITY_TYPE_QNAME, entityType, true); - MapEntryNode entityEntry = getMapEntryNodeChild(entityTypeEntry, ENTITY_QNAME, ENTITY_ID_QNAME, entityId); + MapEntryNode entityEntry = getMapEntryNodeChild(entityTypeEntry, ENTITY_QNAME, ENTITY_ID_QNAME, + entityId, true); - getMapEntryNodeChild(entityEntry, Candidate.QNAME, CANDIDATE_NAME_QNAME, candidateName); + getMapEntryNodeChild(entityEntry, Candidate.QNAME, CANDIDATE_NAME_QNAME, candidateName, expectPresent); } catch(AssertionError e) { throw new AssertionError("Verification of entity candidate failed - returned data was: " + node, e); } } protected void verifyEntityCandidate(String entityType, YangInstanceIdentifier entityId, String candidateName, - Function> reader) { + Function> reader, boolean expectPresent) { AssertionError lastError = null; Stopwatch sw = Stopwatch.createStarted(); while(sw.elapsed(TimeUnit.MILLISECONDS) <= 5000) { NormalizedNode node = reader.apply(ENTITY_OWNERS_PATH); try { - verifyEntityCandidate(node, entityType, entityId, candidateName); + verifyEntityCandidate(node, entityType, entityId, candidateName, expectPresent); return; } catch (AssertionError e) { lastError = e; @@ -87,8 +88,13 @@ public class AbstractEntityOwnershipTest extends AbstractActorTest { throw lastError; } + protected void verifyEntityCandidate(String entityType, YangInstanceIdentifier entityId, String candidateName, + Function> reader) { + verifyEntityCandidate(entityType, entityId, candidateName, reader, true); + } + protected MapEntryNode getMapEntryNodeChild(DataContainerNode parent, QName childMap, - QName child, Object key) { + QName child, Object key, boolean expectPresent) { Optional> childNode = parent.getChild(new NodeIdentifier(childMap)); assertEquals("Missing " + childMap.toString(), true, childNode.isPresent()); @@ -96,13 +102,16 @@ public class AbstractEntityOwnershipTest extends AbstractActorTest { MapNode entityTypeMapNode = (MapNode) childNode.get(); Optional entityTypeEntry = entityTypeMapNode.getChild(new NodeIdentifierWithPredicates( childMap, child, key)); - if(!entityTypeEntry.isPresent()) { + if(expectPresent && !entityTypeEntry.isPresent()) { fail("Missing " + childMap.toString() + " entry for " + key + ". Actual: " + entityTypeMapNode.getValue()); + } else if(!expectPresent && entityTypeEntry.isPresent()) { + fail("Found unexpected " + childMap.toString() + " entry for " + key); } - return entityTypeEntry.get(); + + return entityTypeEntry.isPresent() ? entityTypeEntry.get() : null; } - protected void verifyOwner(String expected, String entityType, YangInstanceIdentifier entityId, + static void verifyOwner(String expected, String entityType, YangInstanceIdentifier entityId, Function> reader) { AssertionError lastError = null; YangInstanceIdentifier entityPath = entityPath(entityType, entityId).node(ENTITY_OWNER_QNAME);