X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Futils%2FMockDataTreeChangeListener.java;fp=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Futils%2FMockDataTreeChangeListener.java;h=de41609ba178e41bab48bc8530eff491cdfe2e26;hp=a441ccad633c8884ec4d7383a3398ab1eeb99264;hb=75391ff5ac6e463936716ae78e74c1cf0a5a58a2;hpb=e9f0c3176a14cf9e5d2bd788872d85b86d19f68e diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java index a441ccad63..de41609ba1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.cluster.datastore.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import com.google.common.util.concurrent.Uninterruptibles; @@ -21,6 +22,7 @@ import java.util.Optional; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import javax.annotation.Nonnull; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -33,6 +35,9 @@ public class MockDataTreeChangeListener implements DOMDataTreeChangeListener { private final List changeList = new ArrayList<>(); + private final CountDownLatch onInitialDataLatch = new CountDownLatch(1); + private final AtomicInteger onInitialDataEventCount = new AtomicInteger(); + private volatile CountDownLatch changeLatch; private int expChangeEventCount; @@ -58,6 +63,23 @@ public class MockDataTreeChangeListener implements DOMDataTreeChangeListener { } } + @Override + public void onInitialData() { + onInitialDataEventCount.incrementAndGet(); + onInitialDataLatch.countDown(); + } + + public void verifyOnInitialDataEvent() { + assertTrue("onInitialData was not triggered", + Uninterruptibles.awaitUninterruptibly(onInitialDataLatch, 5, TimeUnit.SECONDS)); + assertEquals("onInitialDataEventCount", 1, onInitialDataEventCount.get()); + } + + public void verifyNoOnInitialDataEvent() { + assertFalse("onInitialData was triggered unexpectedly", + Uninterruptibles.awaitUninterruptibly(onInitialDataLatch, 500, TimeUnit.MILLISECONDS)); + } + @SuppressWarnings({ "unchecked", "rawtypes" }) public void waitForChangeEvents(final YangInstanceIdentifier... expPaths) { boolean done = Uninterruptibles.awaitUninterruptibly(changeLatch, 5, TimeUnit.SECONDS);