import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.binding.runtime.spi.GeneratedClassLoadingStrategy;
+import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataTreeChangeService;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
import org.opendaylight.mdsal.binding.api.DataTreeModification;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator;
+import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener;
+import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension;
import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener;
-import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.Top;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
*
* @author Thomas Pantelis
*/
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class BindingDOMDataTreeChangeServiceAdapterTest {
private static final InstanceIdentifier<Top> TOP_PATH = InstanceIdentifier.create(Top.class);
+ private static final YangInstanceIdentifier TOP_YIID = YangInstanceIdentifier.of(Top.QNAME);
@Mock
- private DOMDataTreeChangeService mockDOMService;
+ private DataTreeChangeExtension mockDOMService;
@Mock
- private GeneratedClassLoadingStrategy classLoadingStrategy;
-
- @Mock
- private BindingNormalizedNodeCodecRegistry codecRegistry;
-
- @Mock
- private YangInstanceIdentifier mockYangID;
+ private BindingDOMCodecServices services;
@SuppressWarnings("rawtypes")
@Mock
@Before
public void setUp() {
- MockitoAnnotations.initMocks(this);
- doReturn(this.mockYangID).when(this.codecRegistry).toYangInstanceIdentifier(TOP_PATH);
+ doReturn(TOP_YIID).when(services).toYangInstanceIdentifier(TOP_PATH);
}
@Test
public void testRegisterDataTreeChangeListener() {
- final BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(
- new DefaultBindingRuntimeGenerator(), classLoadingStrategy, codecRegistry);
+ final AdapterContext codec = new ConstantAdapterContext(services);
- final DataTreeChangeService service = BindingDOMDataTreeChangeServiceAdapter.create(codec, this.mockDOMService);
+ final DataTreeChangeService service = new BindingDOMDataTreeChangeServiceAdapter(codec, mockDOMService);
- doReturn(this.mockDOMReg).when(this.mockDOMService).registerDataTreeChangeListener(
- domDataTreeIdentifier(this.mockYangID),
+ doReturn(mockDOMReg).when(mockDOMService).registerDataTreeChangeListener(
+ domDataTreeIdentifier(TOP_YIID),
any(DOMDataTreeChangeListener.class));
- final DataTreeIdentifier<Top> treeId = DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, TOP_PATH);
+ final DataTreeIdentifier<Top> treeId = DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION, TOP_PATH);
final TestClusteredDataTreeChangeListener mockClusteredListener = new TestClusteredDataTreeChangeListener();
service.registerDataTreeChangeListener(treeId , mockClusteredListener);
- verify(this.mockDOMService).registerDataTreeChangeListener(domDataTreeIdentifier(this.mockYangID),
+ verify(mockDOMService).registerDataTreeChangeListener(domDataTreeIdentifier(TOP_YIID),
isA(ClusteredDOMDataTreeChangeListener.class));
- reset(this.mockDOMService);
- doReturn(this.mockDOMReg).when(this.mockDOMService).registerDataTreeChangeListener(
- domDataTreeIdentifier(this.mockYangID), any(DOMDataTreeChangeListener.class));
+ reset(mockDOMService);
+ doReturn(mockDOMReg).when(mockDOMService).registerDataTreeChangeListener(
+ domDataTreeIdentifier(TOP_YIID), any(DOMDataTreeChangeListener.class));
final TestDataTreeChangeListener mockNonClusteredListener = new TestDataTreeChangeListener();
service.registerDataTreeChangeListener(treeId , mockNonClusteredListener);
- verify(this.mockDOMService).registerDataTreeChangeListener(domDataTreeIdentifier(this.mockYangID),
+ verify(mockDOMService).registerDataTreeChangeListener(domDataTreeIdentifier(TOP_YIID),
not(isA(ClusteredDOMDataTreeChangeListener.class)));
}
static DOMDataTreeIdentifier domDataTreeIdentifier(final YangInstanceIdentifier yangID) {
- return argThat(arg -> arg.getDatastoreType() == LogicalDatastoreType.CONFIGURATION
- && yangID.equals(arg.getRootIdentifier()));
+ return argThat(arg -> arg.datastore() == LogicalDatastoreType.CONFIGURATION && yangID.equals(arg.path()));
}
- private static class TestClusteredDataTreeChangeListener implements ClusteredDataTreeChangeListener<Top> {
+ private static final class TestClusteredDataTreeChangeListener implements ClusteredDataTreeChangeListener<Top> {
@Override
public void onDataTreeChanged(final Collection<DataTreeModification<Top>> changes) {
+ // No-op
}
}
- private static class TestDataTreeChangeListener implements DataTreeChangeListener<Top> {
+ private static final class TestDataTreeChangeListener implements DataTreeChangeListener<Top> {
@Override
public void onDataTreeChanged(final Collection<DataTreeModification<Top>> changes) {
+ // No-op
}
}
}