X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-broker%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fbroker%2FShardedDOMDataTreeListenerWithProducerTest.java;fp=dom%2Fmdsal-dom-broker%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fbroker%2Ftest%2FShardedDOMDataTreeListenerWithProducerTest.java;h=bb8d70dc38a0ad2f39add1f009284bc40752c080;hb=dc0610a1948724ba3d877cc334ff9893a3ecbdf3;hp=3a27f04894765ddaf24482a07e6bae5801719e7a;hpb=71a93cffcd04df6a5521b323c9afdadafc90bc47;p=mdsal.git diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/test/ShardedDOMDataTreeListenerWithProducerTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeListenerWithProducerTest.java similarity index 76% rename from dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/test/ShardedDOMDataTreeListenerWithProducerTest.java rename to dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeListenerWithProducerTest.java index 3a27f04894..bb8d70dc38 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/test/ShardedDOMDataTreeListenerWithProducerTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeListenerWithProducerTest.java @@ -5,18 +5,19 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.mdsal.dom.broker.test; +package org.opendaylight.mdsal.dom.broker; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyMap; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static org.opendaylight.mdsal.dom.broker.test.MockingUtilities.captorFor; +import static org.opendaylight.mdsal.dom.broker.MockingUtilities.captorFor; import java.util.Collection; import java.util.Collections; @@ -36,8 +37,7 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeProducer; import org.opendaylight.mdsal.dom.api.DOMDataTreeService; import org.opendaylight.mdsal.dom.api.DOMDataTreeShard; import org.opendaylight.mdsal.dom.api.DOMDataTreeShardingConflictException; -import org.opendaylight.mdsal.dom.broker.ShardedDOMDataTree; -import org.opendaylight.mdsal.dom.broker.test.util.TestModel; +import org.opendaylight.mdsal.dom.broker.util.TestModel; import org.opendaylight.mdsal.dom.spi.store.DOMStore; import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain; import org.opendaylight.mdsal.dom.spi.store.DOMStoreTreeChangePublisher; @@ -87,6 +87,9 @@ public class ShardedDOMDataTreeListenerWithProducerTest { @Mock(name = "storeTxChain") private DOMStoreTransactionChain txChainMock; + @Mock + private ShardedDOMDataTreeProducer rootProducer; + private DOMDataTreeService treeService; private ListenerRegistration shardReg; @@ -94,9 +97,11 @@ public class ShardedDOMDataTreeListenerWithProducerTest { @Before public void setUp() throws DOMDataTreeShardingConflictException { MockitoAnnotations.initMocks(this); + doReturn(Collections.singleton(ROOT_ID)).when(rootProducer).getSubtrees(); + doNothing().when(rootProducer).subshardAdded(anyMap()); final ShardedDOMDataTree impl = new ShardedDOMDataTree(); treeService = impl; - shardReg = impl.registerDataTreeShard(ROOT_ID, rootShard); + shardReg = impl.registerDataTreeShard(ROOT_ID, rootShard, rootProducer); doReturn("rootShard").when(rootShard).toString(); doReturn("childShard").when(childShard).toString(); @@ -111,70 +116,70 @@ public class ShardedDOMDataTreeListenerWithProducerTest { @Test public void registerListenerWithOneProducer() throws DOMDataTreeLoopException { - DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); - DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_TEST2); + final DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); + final DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_TEST2); treeService.registerListener(listener, SUBTREES_TEST, true, Collections.singleton(producer)); } @Test(expected = IllegalStateException.class) public void registerListenerWithAlreadyBoundProducer() throws DOMDataTreeLoopException { - DOMDataTreeListener listener1 = MockingUtilities.mock(DOMDataTreeListener.class, "listener1"); - DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_TEST2); + final DOMDataTreeListener listener1 = MockingUtilities.mock(DOMDataTreeListener.class, "listener1"); + final DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_TEST2); treeService.registerListener(listener1, SUBTREES_TEST, true, Collections.singleton(producer)); - DOMDataTreeListener listener2 = MockingUtilities.mock(DOMDataTreeListener.class, "listener2"); + final DOMDataTreeListener listener2 = MockingUtilities.mock(DOMDataTreeListener.class, "listener2"); treeService.registerListener(listener2, SUBTREES_TEST, true, Collections.singleton(producer)); } @Test(expected = DOMDataTreeLoopException.class) public void loopSameSubtree() throws DOMDataTreeLoopException { - DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); - DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_TEST); + final DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); + final DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_TEST); treeService.registerListener(listener, SUBTREES_TEST, true, Collections.singleton(producer)); } @Test(expected = DOMDataTreeLoopException.class) public void loopListenParentWritesChild() throws DOMDataTreeLoopException { - DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); - DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_TEST); + final DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); + final DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_TEST); treeService.registerListener(listener, SUBTREES_ROOT, true, Collections.singleton(producer)); } @Test(expected = DOMDataTreeLoopException.class) public void loopListenChildWritesParent() throws DOMDataTreeLoopException { - DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); - DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_ROOT); + final DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); + final DOMDataTreeProducer producer = treeService.createProducer(SUBTREES_ROOT); treeService.registerListener(listener, SUBTREES_ROOT, true, Collections.singleton(producer)); } @Test public void receiveChangeEvent() throws DOMDataTreeLoopException { - DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); - ArgumentCaptor storeListener = + final DOMDataTreeListener listener = Mockito.mock(DOMDataTreeListener.class); + final ArgumentCaptor storeListener = ArgumentCaptor.forClass(DOMDataTreeChangeListener.class); treeService.registerListener(listener, SUBTREES_TEST, true, Collections.emptyList()); verify(rootShard, times(1)).registerTreeChangeListener(eq(TEST_ID.getRootIdentifier()), storeListener.capture()); - DataTreeCandidate sentStoreCandidate = + final DataTreeCandidate sentStoreCandidate = DataTreeCandidates.fromNormalizedNode(TEST_ID.getRootIdentifier(), TEST_CONTAINER); - Collection changes = Collections.singleton(sentStoreCandidate); + final Collection changes = Collections.singleton(sentStoreCandidate); doNothing().when(listener).onDataTreeChanged(Mockito.>any(), Mockito.anyMap()); storeListener.getValue().onDataTreeChanged(changes); - ArgumentCaptor> candidateCapture = captorFor(Collection.class); - ArgumentCaptor>> mapCapture = captorFor(Map.class); + final ArgumentCaptor> candidateCapture = captorFor(Collection.class); + final ArgumentCaptor>> mapCapture = captorFor(Map.class); verify(listener, times(1)).onDataTreeChanged(candidateCapture.capture(), mapCapture.capture()); - Collection receivedCandidate = candidateCapture.getValue(); - Map> receivedMap = mapCapture.getValue(); + final Collection receivedCandidate = candidateCapture.getValue(); + final Map> receivedMap = mapCapture.getValue(); assertNotNull("receivedCandidate", receivedCandidate); assertNotNull("receivedMap", receivedMap); assertFalse("candidate collection must not be empty", receivedCandidate.isEmpty()); assertEquals(1, receivedCandidate.size()); - DataTreeCandidate firstItem = receivedCandidate.iterator().next(); + final DataTreeCandidate firstItem = receivedCandidate.iterator().next(); assertEquals(TEST_ID.getRootIdentifier(), firstItem.getRootPath()); assertEquals(TEST_CONTAINER, receivedMap.get(TEST_ID)); }