X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2Ftest%2FBindingDOMDataBrokerAdapterTest.java;h=1d842bede8c1f6df82edf3debc46fe1c3e5034e0;hb=aaea3e9a92ae9d6fac04c4a065db4b35cbca9ed0;hp=3506f4ba19583fe0f1b92f24c69ade604af807ee;hpb=03c13bd8a8bb89a729d739eb2fcd501a4dfa5439;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/BindingDOMDataBrokerAdapterTest.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/BindingDOMDataBrokerAdapterTest.java index 3506f4ba19..1d842bede8 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/BindingDOMDataBrokerAdapterTest.java +++ b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/BindingDOMDataBrokerAdapterTest.java @@ -8,28 +8,34 @@ package org.opendaylight.controller.md.sal.binding.impl.test; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.verify; + +import com.google.common.collect.ImmutableMap; import org.junit.Before; import org.junit.Test; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.opendaylight.controller.md.sal.binding.api.ClusteredDataChangeListener; +import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener; +import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier; import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter; import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.dom.api.ClusteredDOMDataChangeListener; +import org.opendaylight.controller.md.sal.dom.api.ClusteredDOMDataTreeChangeListener; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; +import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener; +import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeService; +import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry; import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.Top; -import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; - +@Deprecated public class BindingDOMDataBrokerAdapterTest { @Mock @@ -37,15 +43,20 @@ public class BindingDOMDataBrokerAdapterTest { @Mock GeneratedClassLoadingStrategy classLoadingStrategy; + @Mock BindingNormalizedNodeCodecRegistry codecRegistry; @Mock - YangInstanceIdentifier yangInstanceIdentifier; + DOMDataTreeChangeService dataTreeChangeService; + @Mock + ListenerRegistration listenerRegistration; + + @Mock + ClusteredDataTreeChangeListener clusteredDataTreeChangeListener; - private static final InstanceIdentifier TOP_PATH = InstanceIdentifier - .create(Top.class); + private static final InstanceIdentifier TOP_PATH = InstanceIdentifier.create(Top.class); @Before public void setUp() { @@ -53,39 +64,33 @@ public class BindingDOMDataBrokerAdapterTest { } @Test - public void testClusteredDataChangeListernerRegisteration() { + public void testClusteredDataTreeChangeListenerRegisteration() { + + doReturn(YangInstanceIdentifier.of(Top.QNAME)).when(codecRegistry).toYangInstanceIdentifier(TOP_PATH); + + doReturn(listenerRegistration).when(dataTreeChangeService).registerDataTreeChangeListener(any(), any()); + + doReturn(ImmutableMap.of(DOMDataTreeChangeService.class, dataTreeChangeService)) + .when(dataBroker).getSupportedExtensions(); final BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(this.classLoadingStrategy, this.codecRegistry); try (BindingDOMDataBrokerAdapter bindingDOMDataBrokerAdapter = new BindingDOMDataBrokerAdapter(this.dataBroker, codec)) { - Mockito.when(this.codecRegistry.toYangInstanceIdentifier(TOP_PATH)).thenReturn(this.yangInstanceIdentifier); - - final ArgumentCaptor clusteredDOMListener = ArgumentCaptor - .forClass(ClusteredDOMDataChangeListener.class); - final ArgumentCaptor logicalDatastoreType = ArgumentCaptor - .forClass(LogicalDatastoreType.class); - final ArgumentCaptor dataChangeScope = ArgumentCaptor - .forClass(AsyncDataBroker.DataChangeScope.class); - final ArgumentCaptor yangIidCapture = ArgumentCaptor - .forClass(YangInstanceIdentifier.class); - - final TestListener listener = new TestListener(); - - bindingDOMDataBrokerAdapter.registerDataChangeListener(LogicalDatastoreType.OPERATIONAL, TOP_PATH, - listener, AsyncDataBroker.DataChangeScope.BASE); - Mockito.verify(this.dataBroker).registerDataChangeListener(logicalDatastoreType.capture(), - yangIidCapture.capture(), clusteredDOMListener.capture(), dataChangeScope.capture()); - } - } + ListenerRegistration> bindingListenerReg = + bindingDOMDataBrokerAdapter.registerDataTreeChangeListener( + new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, TOP_PATH), + clusteredDataTreeChangeListener); - private class TestListener implements ClusteredDataChangeListener { + verify(dataTreeChangeService).registerDataTreeChangeListener( + eq(new DOMDataTreeIdentifier(LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.of(Top.QNAME))), + any(ClusteredDOMDataTreeChangeListener.class)); - @Override - public void onDataChanged(final AsyncDataChangeEvent, DataObject> change) { + bindingListenerReg.close(); + verify(listenerRegistration).close(); } } }