import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
import static org.opendaylight.controller.md.sal.dom.store.impl.TestModel.createTestContext;
import static org.opendaylight.mdsal.dom.store.inmemory.TestUtils.DOM_DATA_TREE_IDENTIFIER;
import static org.opendaylight.mdsal.dom.store.inmemory.TestUtils.DOM_DATA_TREE_SHARD_PRODUCER;
import org.junit.After;
import org.junit.Test;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
@Test
public void basicTest() throws Exception {
- InMemoryDOMDataTreeShard inMemoryDOMDataTreeShard =
+ final InMemoryDOMDataTreeShard inMemoryDOMDataTreeShard =
InMemoryDOMDataTreeShard.create(DOM_DATA_TREE_IDENTIFIER,
- MoreExecutors.newDirectExecutorService(), 1);
+ MoreExecutors.newDirectExecutorService(), 1, 1);
final DOMDataTreeIdentifier domDataTreeIdentifier =
new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION,
YangInstanceIdentifier.of(QName.create("Test")));
- WriteableDOMDataTreeShard domDataTreeShard = mock(WriteableDOMDataTreeShard.class);
- doReturn("testTreeShard").when(domDataTreeShard).toString();
+ final ReadableWriteableDOMDataTreeShard domDataTreeShard = mock(ReadableWriteableDOMDataTreeShard.class);
+ doReturn("testReadableWriteableDOMDataTreeShard").when(domDataTreeShard).toString();
doReturn(DOM_DATA_TREE_SHARD_PRODUCER).when(domDataTreeShard).createProducer(any());
assertFalse(inMemoryDOMDataTreeShard.getChildShards().containsValue(domDataTreeShard));
assertTrue(inMemoryDOMDataTreeShard.getChildShards().containsValue(domDataTreeShard));
inMemoryDOMDataTreeShard.onChildAttached(domDataTreeIdentifier, domDataTreeShard);
- Collection<DOMDataTreeIdentifier> prefixes = ImmutableList.of(DOM_DATA_TREE_IDENTIFIER);
+ final Collection<DOMDataTreeIdentifier> prefixes = ImmutableList.of(DOM_DATA_TREE_IDENTIFIER);
assertEquals(prefixes.toString(), inMemoryDOMDataTreeShard.createProducer(prefixes).getPrefixes().toString());
inMemoryDOMDataTreeShard.onGlobalContextUpdated(createTestContext());
inMemoryDOMDataTreeShard.createTransaction(prefixes);
+ final DOMDataTreeChangeListener domDataTreeChangeListener = mock(DOMDataTreeChangeListener.class);
+ final ListenerRegistration listenerRegistration = mock(ListenerRegistration.class);
+ doReturn(listenerRegistration).when(domDataTreeShard).registerTreeChangeListener(any(), any());
+ doNothing().when(domDataTreeChangeListener).onDataTreeChanged(any());
+ inMemoryDOMDataTreeShard.registerTreeChangeListener(YangInstanceIdentifier.EMPTY, domDataTreeChangeListener);
+ verify(domDataTreeShard, atLeastOnce()).registerTreeChangeListener(any(), any());
+
inMemoryDOMDataTreeShard.onChildDetached(DOM_DATA_TREE_IDENTIFIER, domDataTreeShard);
assertFalse(inMemoryDOMDataTreeShard.getChildShards().containsKey(DOM_DATA_TREE_IDENTIFIER));
}
final InMemoryDOMDataTreeShard inMemoryDOMDataTreeShard =
InMemoryDOMDataTreeShard.create(domDataTreeIdentifier,
- MoreExecutors.newDirectExecutorService(), 1);
+ MoreExecutors.newDirectExecutorService(), 1 ,1);
final InmemoryDOMDataTreeShardWriteTransaction inmemoryDOMDataTreeShardWriteTransaction =
mock(InmemoryDOMDataTreeShardWriteTransaction.class);