Bug 5947: Increasing code coverage - binding-dom-adapter 55/41755/3
authorPeter Nosal <peter.nosal@pantheon.tech>
Wed, 13 Jul 2016 10:32:49 +0000 (12:32 +0200)
committerRobert Varga <nite@hq.sk>
Thu, 14 Jul 2016 14:47:12 +0000 (14:47 +0000)
Change-Id: I9dd1322938bb528378dd224487caac2f6c21404c
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
17 files changed:
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/AdapterBuilderTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMAdapterLoaderTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeCommitCohortRegistryAdapterTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeListenerAdapterTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeProducerAdapterTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeServiceAdapterTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMMountPointListenerAdapterTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcAdapterRegistrationTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingMountPointAdapterTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingRpcAdapterRegistrationTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingStructuralTypeTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazySerializedContainerNodeTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazySerializedDOMNotificationTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapterTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/DataTreeChangeListenerTest.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/test/util/BindingTestContext.java
entityownership/mdsal-eos-binding-adapter/src/test/java/org/opendaylight/mdsal/eos/binding/dom/adapter/BindingDOMEntityOwnershipServiceAdapterTest.java

diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/AdapterBuilderTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/AdapterBuilderTest.java
new file mode 100644 (file)
index 0000000..bea076d
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertTrue;
+
+import com.google.common.collect.ClassToInstanceMap;
+import com.google.common.collect.MutableClassToInstanceMap;
+import java.util.Map;
+import java.util.Set;
+import org.junit.Test;
+
+public class AdapterBuilderTest extends AdapterBuilder {
+
+    private static final ClassToInstanceMap<Object> DELEGATES = MutableClassToInstanceMap.create();
+
+    @Test
+    public void buildTest() throws Exception {
+        this.addDelegate(String.class, "test");
+        DELEGATES.putAll((Map) this.build());
+        assertTrue(DELEGATES.containsValue("test"));
+        this.addDelegate(Object.class, "test2");
+        DELEGATES.putAll((Map) this.build());
+        assertTrue(DELEGATES.containsValue("test"));
+        assertTrue(DELEGATES.get(Object.class).equals("test2"));
+    }
+
+    @Override
+    public Set<? extends Class> getRequiredDelegates() {
+        return DELEGATES.keySet();
+    }
+
+    @Override
+    protected Object createInstance(ClassToInstanceMap delegates) {
+        return delegates;
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMAdapterLoaderTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMAdapterLoaderTest.java
new file mode 100644 (file)
index 0000000..3d7e733
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import javax.annotation.Nullable;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.dom.api.DOMDataBroker;
+import org.opendaylight.mdsal.dom.api.DOMService;
+import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
+import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
+
+public class BindingDOMAdapterLoaderTest {
+
+    @Mock
+    private DOMDataBroker domService;
+
+    @Mock
+    private BindingNormalizedNodeCodecRegistry mockCodecRegistry;
+
+    private BindingDOMAdapterLoader bindingDOMAdapterLoader;
+    private BindingDOMDataBrokerAdapter bindingDOMDataBrokerAdapter;
+
+    @Before
+    public void setUp() throws Exception {
+        initMocks(this);
+        bindingDOMAdapterLoader = new BindingDOMAdapterLoader(
+                new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(),
+                        mockCodecRegistry)) {
+            @Nullable
+            @Override
+            protected DOMService getDelegate(Class<? extends DOMService> reqDeleg) {
+                return domService;
+            }
+        };
+    }
+
+    @Test
+    public void createBuilderTest() throws Exception {
+        assertTrue(bindingDOMAdapterLoader.load(DataBroker.class).get() instanceof BindingDOMDataBrokerAdapter);
+        domService = null;
+        assertFalse(bindingDOMAdapterLoader.load(DataBroker.class).isPresent());
+    }
+
+    @Test
+    public void createChainTest() throws Exception {
+        bindingDOMDataBrokerAdapter = (BindingDOMDataBrokerAdapter) bindingDOMAdapterLoader.load(DataBroker.class).get();
+        assertNotNull(bindingDOMDataBrokerAdapter.createTransactionChain(null));
+    }
+
+    @Test(expected = UnsupportedOperationException.class)
+    public void registerWithException() throws Exception {
+        bindingDOMDataBrokerAdapter = (BindingDOMDataBrokerAdapter) bindingDOMAdapterLoader.load(DataBroker.class).get();
+        bindingDOMDataBrokerAdapter.registerDataTreeChangeListener(null,null);
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeCommitCohortRegistryAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeCommitCohortRegistryAdapterTest.java
new file mode 100644 (file)
index 0000000..454978c
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.any;
+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 com.google.common.util.concurrent.MoreExecutors;
+import org.junit.Test;
+import org.opendaylight.mdsal.binding.api.DataTreeCommitCohort;
+import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingBrokerTestFactory;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingTestContext;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistration;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.Top;
+import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class BindingDOMDataTreeCommitCohortRegistryAdapterTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        final BindingBrokerTestFactory bindingBrokerTestFactory = new BindingBrokerTestFactory();
+        bindingBrokerTestFactory.setExecutor(MoreExecutors.newDirectExecutorService());
+        final BindingTestContext bindingTestContext = bindingBrokerTestFactory.getTestContext();
+        bindingTestContext.start();
+
+        final DOMDataTreeCommitCohortRegistry cohortRegistry = mock(DOMDataTreeCommitCohortRegistry.class);
+        final DOMDataTreeCommitCohortRegistration cohortRegistration = mock(DOMDataTreeCommitCohortRegistration.class);
+        doReturn(cohortRegistration).when(cohortRegistry)
+                .registerCommitCohort(any(), any());
+        doNothing().when(cohortRegistration).close();
+        final BindingDOMDataTreeCommitCohortRegistryAdapter registryAdapter =
+                new BindingDOMDataTreeCommitCohortRegistryAdapter(bindingTestContext.getCodec(), cohortRegistry);
+
+        assertNotNull(registryAdapter.from(bindingTestContext.getCodec(), cohortRegistry));
+
+        final DataTreeIdentifier dataTreeIdentifier = DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
+                InstanceIdentifier.create(Top.class));
+        final DataTreeCommitCohort dataTreeCommitCohort = mock(DataTreeCommitCohort.class);
+        final ObjectRegistration objectRegistration =
+                registryAdapter.registerCommitCohort(dataTreeIdentifier, dataTreeCommitCohort);
+        assertEquals(dataTreeCommitCohort, objectRegistration.getInstance());
+
+        objectRegistration.close();
+        verify(cohortRegistration).close();
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeListenerAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeListenerAdapterTest.java
new file mode 100644 (file)
index 0000000..9e764a0
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.util.concurrent.MoreExecutors;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.opendaylight.mdsal.binding.api.DataTreeListener;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingBrokerTestFactory;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingTestContext;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeListeningException;
+
+public class BindingDOMDataTreeListenerAdapterTest {
+
+    private BindingDOMDataTreeListenerAdapter bindingDOMDataTreeListenerAdapter;
+
+    @Mock
+    private DataTreeListener delegate;
+
+    @Before
+    public void setUp() throws Exception {
+        initMocks(this);
+        final BindingBrokerTestFactory testFactory = new BindingBrokerTestFactory();
+        testFactory.setExecutor(MoreExecutors.newDirectExecutorService());
+        final BindingTestContext testContext = testFactory.getTestContext();
+        testContext.start();
+
+        bindingDOMDataTreeListenerAdapter =
+            new BindingDOMDataTreeListenerAdapter(delegate, testContext.getCodec(), LogicalDatastoreType.OPERATIONAL);
+    }
+
+    @Test
+    public void onDataTreeChanged() throws Exception {
+        bindingDOMDataTreeListenerAdapter.onDataTreeChanged(ImmutableSet.of(), ImmutableMap.of());
+        verify(delegate).onDataTreeChanged(any(), any());
+    }
+
+    @Test
+    public void onDataTreeFailedTest() throws Exception {
+        bindingDOMDataTreeListenerAdapter.onDataTreeFailed(ImmutableSet.of(new DOMDataTreeListeningException("test")));
+        verify(delegate).onDataTreeFailed(any());
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeProducerAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeProducerAdapterTest.java
new file mode 100644 (file)
index 0000000..e31fdd2
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.verify;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.common.util.concurrent.MoreExecutors;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.opendaylight.mdsal.binding.api.DataTreeProducerException;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingBrokerTestFactory;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingTestContext;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeProducer;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeProducerBusyException;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeProducerException;
+
+public class BindingDOMDataTreeProducerAdapterTest {
+
+    private BindingDOMDataTreeProducerAdapter bindingDOMDataTreeProducerAdapter;
+    private BindingToNormalizedNodeCodec codec;
+
+    @Mock
+    private DOMDataTreeProducer delegate;
+
+    @Before
+    public void setUp() throws Exception {
+        initMocks(this);
+        final BindingBrokerTestFactory testFactory = new BindingBrokerTestFactory();
+        testFactory.setExecutor(MoreExecutors.newDirectExecutorService());
+        final BindingTestContext testContext = testFactory.getTestContext();
+        testContext.start();
+        codec = testContext.getCodec();
+        bindingDOMDataTreeProducerAdapter = new BindingDOMDataTreeProducerAdapter(delegate, codec);
+    }
+
+    @Test
+    public void createTransactionTest() throws Exception {
+        doReturn(mock(DOMDataTreeCursorAwareTransaction.class)).when(delegate).createTransaction(true);
+        assertNotNull(bindingDOMDataTreeProducerAdapter.createTransaction(true));
+        verify(delegate).createTransaction(true);
+    }
+
+    @Test
+    public void createTest() throws Exception {
+        assertNotNull(BindingDOMDataTreeProducerAdapter.create(delegate, codec));
+    }
+
+    @Test
+    public void createProducerTest() throws Exception {
+        doReturn(mock(DOMDataTreeProducer.class)).when(delegate).createProducer(any());
+        assertNotNull(bindingDOMDataTreeProducerAdapter.createProducer(ImmutableSet.of()));
+        verify(delegate).createProducer(any());
+    }
+
+    @Test
+    public void closeTest() throws Exception {
+        reset(delegate);
+        bindingDOMDataTreeProducerAdapter.close();
+        verify(delegate).close();
+    }
+
+    @Test(expected = DataTreeProducerException.class)
+    public void closeTestWithException1() throws Exception {
+        doThrow(new DOMDataTreeProducerBusyException("test")).when(delegate).close();
+        bindingDOMDataTreeProducerAdapter.close();
+    }
+
+    @Test(expected = DataTreeProducerException.class)
+    public void closeTestWithException2() throws Exception {
+        doThrow(new DOMDataTreeProducerException("test")).when(delegate).close();
+        bindingDOMDataTreeProducerAdapter.close();
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeServiceAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeServiceAdapterTest.java
new file mode 100644 (file)
index 0000000..152f484
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.common.util.concurrent.MoreExecutors;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.opendaylight.mdsal.binding.api.DataTreeListener;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingBrokerTestFactory;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingTestContext;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeProducer;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeService;
+
+public class BindingDOMDataTreeServiceAdapterTest {
+
+    private BindingDOMDataTreeServiceAdapter bindingDOMDataTreeServiceAdapter;
+    private BindingToNormalizedNodeCodec codec;
+
+    @Mock
+    private DOMDataTreeService delegate;
+
+    @Before
+    public void setUp() throws Exception {
+        initMocks(this);
+        final BindingBrokerTestFactory testFactory = new BindingBrokerTestFactory();
+        testFactory.setExecutor(MoreExecutors.newDirectExecutorService());
+        final BindingTestContext testContext = testFactory.getTestContext();
+        testContext.start();
+        codec = testContext.getCodec();
+        bindingDOMDataTreeServiceAdapter = BindingDOMDataTreeServiceAdapter.create(delegate, codec);
+    }
+
+    @Test
+    public void createProducerTest() throws Exception {
+        doReturn(mock(DOMDataTreeProducer.class)).when(delegate).createProducer(any());
+        assertNotNull(bindingDOMDataTreeServiceAdapter.createProducer(ImmutableSet.of()));
+        verify(delegate).createProducer(any());
+    }
+
+    @Test(expected = UnsupportedOperationException.class)
+    public void registerListenerTest() throws Exception {
+        bindingDOMDataTreeServiceAdapter.registerListener(mock(DataTreeListener.class), ImmutableSet.of(), false,
+                ImmutableSet.of());
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMMountPointListenerAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMMountPointListenerAdapterTest.java
new file mode 100644 (file)
index 0000000..1f4e177
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import com.google.common.util.concurrent.MoreExecutors;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.opendaylight.mdsal.binding.api.MountPointService.MountPointListener;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingBrokerTestFactory;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingTestContext;
+import org.opendaylight.mdsal.dom.api.DOMMountPointService;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+
+public class BindingDOMMountPointListenerAdapterTest {
+
+    private BindingDOMMountPointListenerAdapter bindingDOMMountPointListenerAdapter;
+    private BindingToNormalizedNodeCodec codec;
+
+    @Mock private MountPointListener listener;
+    @Mock private DOMMountPointService mountPointService;
+    @Mock private ListenerRegistration listenerRegistration;
+
+    @Before
+    public void setUp() throws Exception {
+        initMocks(this);
+        final BindingBrokerTestFactory testFactory = new BindingBrokerTestFactory();
+        testFactory.setExecutor(MoreExecutors.newDirectExecutorService());
+        final BindingTestContext testContext = testFactory.getTestContext();
+        testContext.start();
+        codec = testContext.getCodec();
+        doReturn(listenerRegistration).when(mountPointService).registerProvisionListener(any());
+        bindingDOMMountPointListenerAdapter =
+                new BindingDOMMountPointListenerAdapter<>(listener, codec, mountPointService);
+    }
+
+    @Test
+    public void basicTest() throws Exception {
+        assertEquals(listener, bindingDOMMountPointListenerAdapter.getInstance());
+        bindingDOMMountPointListenerAdapter.close();
+        verify(listenerRegistration).close();
+    }
+
+    @Test
+    public void onMountPointCreatedWithExceptionTest() throws Exception {
+        reset(listener);
+        bindingDOMMountPointListenerAdapter.onMountPointCreated(YangInstanceIdentifier.EMPTY);
+        verifyZeroInteractions(listener);
+    }
+
+    @Test
+    public void onMountPointRemovedWithExceptionTest() throws Exception {
+        reset(listener);
+        bindingDOMMountPointListenerAdapter.onMountPointRemoved(YangInstanceIdentifier.EMPTY);
+        verifyZeroInteractions(listener);
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcAdapterRegistrationTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcAdapterRegistrationTest.java
new file mode 100644 (file)
index 0000000..0dda3ea
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import org.junit.Test;
+import org.opendaylight.mdsal.dom.api.DOMRpcImplementationRegistration;
+import org.opendaylight.yangtools.yang.binding.RpcService;
+
+public class BindingDOMRpcAdapterRegistrationTest {
+
+    @Test
+    public void removeRegistration() throws Exception {
+        final DOMRpcImplementationRegistration registration = mock(DOMRpcImplementationRegistration.class);
+        final BindingDOMRpcAdapterRegistration bindingDOMRpcAdapterRegistration =
+                new BindingDOMRpcAdapterRegistration<>(mock(RpcService.class), registration);
+        bindingDOMRpcAdapterRegistration.removeRegistration();
+        verify(registration).close();
+    }
+
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingMountPointAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingMountPointAdapterTest.java
new file mode 100644 (file)
index 0000000..f284774
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy;
+
+import org.junit.Test;
+import org.opendaylight.mdsal.dom.api.DOMMountPoint;
+import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
+import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
+
+public class BindingMountPointAdapterTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        final GeneratedClassLoadingStrategy loading = getTCCLClassLoadingStrategy();
+        final BindingNormalizedNodeCodecRegistry codecRegistry = mock(BindingNormalizedNodeCodecRegistry.class);
+        final BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(loading, codecRegistry);
+        final DOMMountPoint domMountPoint = mock(DOMMountPoint.class);
+        final BindingMountPointAdapter bindingMountPointAdapter = new BindingMountPointAdapter(codec, domMountPoint);
+        assertNull(bindingMountPointAdapter.getIdentifier());
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingRpcAdapterRegistrationTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingRpcAdapterRegistrationTest.java
new file mode 100644 (file)
index 0000000..e5f8bc3
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import org.junit.Test;
+import org.opendaylight.mdsal.dom.api.DOMRpcImplementationRegistration;
+import org.opendaylight.yangtools.yang.binding.RpcService;
+
+public class BindingRpcAdapterRegistrationTest {
+
+    @Test
+    public void removeRegistrationTest() throws Exception {
+        final RpcService rpcService = mock(RpcService.class);
+        final DOMRpcImplementationRegistration domRpcImplementationRegistration =
+                mock(DOMRpcImplementationRegistration.class);
+        final BindingRpcAdapterRegistration bindingRpcAdapterRegistration =
+                new BindingRpcAdapterRegistration<>(rpcService, domRpcImplementationRegistration);
+        doNothing().when(domRpcImplementationRegistration).close();
+        bindingRpcAdapterRegistration.removeRegistration();
+        verify(domRpcImplementationRegistration).close();
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingStructuralTypeTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingStructuralTypeTest.java
new file mode 100644 (file)
index 0000000..c3011a4
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import com.google.common.base.Optional;
+import org.junit.Test;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
+
+public class BindingStructuralTypeTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        final NormalizedNode normalizedNode = mock(NormalizedNode.class);
+        final Optional optional = Optional.of(normalizedNode);
+        final DataTreeCandidateNode dataTreeCandidateNode = mock(DataTreeCandidateNode.class);
+        doReturn(optional).when(dataTreeCandidateNode).getDataAfter();
+        doReturn(optional).when(dataTreeCandidateNode).getDataBefore();
+        assertEquals(BindingStructuralType.UNKNOWN, BindingStructuralType.from(dataTreeCandidateNode));
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazySerializedContainerNodeTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazySerializedContainerNodeTest.java
new file mode 100644 (file)
index 0000000..26dee45
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableBiMap;
+import com.google.common.util.concurrent.MoreExecutors;
+import org.junit.Test;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingBrokerTestFactory;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingTestContext;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.bi.ba.rpcservice.rev140701.OpendaylightTestRpcServiceService;
+import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.RpcEffectiveStatementImpl;
+
+public class LazySerializedContainerNodeTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        final SchemaPath rpcName;
+        final DataObject dataObject = mock(DataObject.class);
+        final BindingNormalizedNodeCodecRegistry codec = mock(BindingNormalizedNodeCodecRegistry.class);
+        final ContainerNode containerNode = mock(ContainerNode.class);
+        doReturn(containerNode).when(codec).toNormalizedNodeRpcData(any());
+        doReturn(Optional.absent()).when(containerNode).getChild(any());
+
+        final BindingBrokerTestFactory bindingBrokerTestFactory = new BindingBrokerTestFactory();
+        bindingBrokerTestFactory.setExecutor(MoreExecutors.newDirectExecutorService());
+        final BindingTestContext bindingTestContext = bindingBrokerTestFactory.getTestContext();
+        bindingTestContext.start();
+
+        final ImmutableBiMap biMap =
+                bindingTestContext.getCodec().getRpcMethodToSchema(OpendaylightTestRpcServiceService.class);
+        rpcName = ((RpcEffectiveStatementImpl) biMap.values().iterator().next()).getPath();
+        final LeafNode leafNode = ImmutableLeafNodeBuilder.create().withNodeIdentifier(NodeIdentifier
+                .create(QName.create("test"))).build();
+        final NormalizedNode normalizedNode = LazySerializedContainerNode.create(rpcName, dataObject, codec);
+        assertNotNull(normalizedNode);
+        final LazySerializedContainerNode lazySerializedContainerNode =
+                (LazySerializedContainerNode) LazySerializedContainerNode.withContextRef(rpcName, dataObject, leafNode,
+                        codec);
+        assertNotNull(lazySerializedContainerNode);
+        assertEquals(leafNode, lazySerializedContainerNode.getChild(leafNode.getIdentifier()).get());
+        assertFalse(lazySerializedContainerNode.getChild(mock(PathArgument.class)).isPresent());
+        assertTrue(lazySerializedContainerNode.getAttributes().isEmpty());
+
+        assertTrue(lazySerializedContainerNode.getValue().isEmpty());
+        assertEquals(lazySerializedContainerNode.getIdentifier().getNodeType(), lazySerializedContainerNode.getNodeType());
+        assertEquals(rpcName.getLastComponent(), lazySerializedContainerNode.getIdentifier().getNodeType());
+        assertNull(lazySerializedContainerNode.getAttributeValue(null));
+        assertEquals(dataObject, lazySerializedContainerNode.bindingData());
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazySerializedDOMNotificationTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazySerializedDOMNotificationTest.java
new file mode 100644 (file)
index 0000000..eba36e9
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import org.junit.Test;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.TwoLevelListChangedBuilder;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
+
+public class LazySerializedDOMNotificationTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        BindingNormalizedNodeSerializer codec = mock(BindingNormalizedNodeSerializer.class);
+        final DOMNotification lazySerializedDOMNotification =
+                LazySerializedDOMNotification.create(codec, new TwoLevelListChangedBuilder().build());
+        ContainerNode containerNode = mock(ContainerNode.class);
+        doReturn(containerNode).when(codec).toNormalizedNodeNotification(any());
+        assertEquals(containerNode, lazySerializedDOMNotification.getBody());
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapterTest.java
new file mode 100644 (file)
index 0000000..63063ee
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.binding.dom.adapter;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import com.google.common.util.concurrent.MoreExecutors;
+import java.lang.reflect.Method;
+import org.junit.Test;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingBrokerTestFactory;
+import org.opendaylight.mdsal.binding.dom.adapter.test.util.BindingTestContext;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.bi.ba.rpcservice.rev140701.OpendaylightTestRpcServiceService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.bi.ba.rpcservice.rev140701.RockTheHouseInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.rpc.routing.rev140701.OpendaylightTestRoutedRpcService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.rpc.routing.rev140701.RoutedSimpleRouteInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.rpc.routing.rev140701.RoutedSimpleRouteInputBuilder;
+import org.opendaylight.yangtools.yang.binding.RpcService;
+
+public class RpcServiceAdapterTest {
+
+    @Test
+    public void invoke() throws Throwable {
+        final BindingBrokerTestFactory bindingBrokerTestFactory = new BindingBrokerTestFactory();
+        bindingBrokerTestFactory.setExecutor(MoreExecutors.newDirectExecutorService());
+        final BindingTestContext bindingTestContext = bindingBrokerTestFactory.getTestContext();
+        bindingTestContext.start();
+
+        RpcServiceAdapter rpcServiceAdapter = new RpcServiceAdapter(OpendaylightTestRpcServiceService.class,
+                bindingTestContext.getCodec(), bindingTestContext.getDomRpcInvoker());
+
+        Method method = TestRpcService.class.getMethod("equals", Object.class);
+        assertTrue((boolean) rpcServiceAdapter.invoke(rpcServiceAdapter.getProxy(), method,
+                new Object[]{ rpcServiceAdapter.getProxy() }));
+        assertFalse((boolean) rpcServiceAdapter.invoke(rpcServiceAdapter.getProxy(), method,
+                new Object[]{ new Object() }));
+
+        method = TestRpcService.class.getMethod("hashCode");
+        assertEquals(rpcServiceAdapter.getProxy().hashCode(), rpcServiceAdapter.invoke(rpcServiceAdapter.getProxy(),
+                method, new Object[]{ }));
+
+        method = TestRpcService.class.getMethod("toString");
+        assertEquals(rpcServiceAdapter.getProxy().toString(), rpcServiceAdapter.invoke(rpcServiceAdapter.getProxy(),
+                method, new Object[]{ }));
+
+        method = OpendaylightTestRpcServiceService.class.getMethod("rockTheHouse", RockTheHouseInput.class);
+        assertNotNull(rpcServiceAdapter.invoke(rpcServiceAdapter.getProxy(), method, new Object[]{ null }));
+
+        rpcServiceAdapter = new RpcServiceAdapter(OpendaylightTestRoutedRpcService.class,
+                bindingTestContext.getCodec(), bindingTestContext.getDomRpcInvoker());
+        method = OpendaylightTestRoutedRpcService.class.getMethod("routedSimpleRoute", RoutedSimpleRouteInput.class);
+        assertNotNull(rpcServiceAdapter.invoke(rpcServiceAdapter.getProxy(), method,
+                new Object[]{ new RoutedSimpleRouteInputBuilder().build() }));
+    }
+
+    private interface TestRpcService extends RpcService {
+
+        String toString();
+        int hashCode();
+        boolean equals(Object o);
+    }
+}
\ No newline at end of file
index 58055cf61ae23a5d4a684b981f77d8b7dfc700e4..7518b90df311e883f0fb8316b3f8c69b9ee045cd 100644 (file)
@@ -18,21 +18,22 @@ import static org.opendaylight.mdsal.binding.test.model.util.ListsBindingUtils.c
 import static org.opendaylight.mdsal.binding.test.model.util.ListsBindingUtils.path;
 import static org.opendaylight.mdsal.binding.test.model.util.ListsBindingUtils.top;
 import static org.opendaylight.mdsal.binding.test.model.util.ListsBindingUtils.topLevelList;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.util.concurrent.SettableFuture;
+import java.util.Collection;
+import java.util.concurrent.TimeUnit;
+import org.junit.Test;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType;
 import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 import org.opendaylight.mdsal.binding.api.WriteTransaction;
-import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType;
 import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-import com.google.common.util.concurrent.SettableFuture;
-import java.util.Collection;
-import java.util.concurrent.TimeUnit;
-import org.junit.Test;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.augment.rev140709.TreeComplexUsesAugment;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.Top;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.TwoLevelList;
@@ -110,6 +111,8 @@ public class DataTreeChangeListenerTest extends AbstractDataBrokerTest {
         verifyModification(afterBarDeleteEvent, TOP_ARGUMENT, ModificationType.SUBTREE_MODIFIED);
         final DataObjectModification<TopLevelList> barDeleteMod = afterBarDeleteEvent.getModifiedChildListItem(TopLevelList.class, TOP_BAR_KEY);
         verifyModification(barDeleteMod, BAR_ARGUMENT, ModificationType.DELETE);
+
+        dataBrokerImpl.registerDataTreeChangeListener(TOP_IDENTIFIER, listener).close();
     }
 
     @Test
index ece1844db7c63fde4871289fae5595bc1737cb9f..708f7e24d4fff71884bb289efa0cf97a8be93999 100644 (file)
@@ -9,10 +9,6 @@ package org.opendaylight.mdsal.binding.dom.adapter.test.util;
 
 import static com.google.common.base.Preconditions.checkState;
 
-import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
-
-import org.opendaylight.mdsal.dom.spi.store.DOMStore;
-import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
@@ -31,6 +27,7 @@ import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationServiceA
 import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMRpcProviderServiceAdapter;
 import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMRpcServiceAdapter;
 import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.mdsal.dom.api.DOMNotificationPublishService;
@@ -41,6 +38,8 @@ import org.opendaylight.mdsal.dom.broker.DOMMountPointServiceImpl;
 import org.opendaylight.mdsal.dom.broker.DOMNotificationRouter;
 import org.opendaylight.mdsal.dom.broker.DOMRpcRouter;
 import org.opendaylight.mdsal.dom.broker.SerializedDOMDataBroker;
+import org.opendaylight.mdsal.dom.spi.store.DOMStore;
+import org.opendaylight.mdsal.dom.store.inmemory.InMemoryDOMDataStore;
 import org.opendaylight.yangtools.binding.data.codec.gen.impl.DataObjectSerializerGenerator;
 import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator;
 import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
@@ -161,6 +160,10 @@ public class BindingTestContext implements AutoCloseable {
         return ctx.tryToCreateSchemaContext().get();
     }
 
+    public SchemaContext getContext() {
+        return mockSchemaService.getSchemaContext();
+    }
+
     public void start() {
         startNewDomDataBroker();
 
index d219643296fdf710c1d04feffacc25e18cabeefc..498b8cae4b1bddcd24bff71f975c0dab1cfd0fc7 100644 (file)
@@ -13,8 +13,10 @@ import static org.junit.Assert.assertSame;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
+
 import com.google.common.base.Optional;
 import org.junit.Before;
 import org.junit.Test;
@@ -129,4 +131,15 @@ public class BindingDOMEntityOwnershipServiceAdapterTest {
         doReturn(true).when(mockDOMService).isCandidateRegistered(DOM_ENTITY);
         assertEquals("isCandidateRegistered", true, adapter.isCandidateRegistered(BINDING_ENTITY));
     }
+
+    @Test(expected = IllegalStateException.class)
+    public void testOwnershipChangeWithException() throws Exception {
+        final DOMEntityOwnershipListenerAdapter domEntityOwnershipListenerAdapter =
+                new DOMEntityOwnershipListenerAdapter(mock(EntityOwnershipListener.class),
+                        new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(),
+                            mockCodecRegistry));
+        final DOMEntityOwnershipChange domOwnershipChange = mock(DOMEntityOwnershipChange.class);
+        doThrow(IllegalStateException.class).when(domOwnershipChange).getEntity();
+        domEntityOwnershipListenerAdapter.ownershipChanged(domOwnershipChange );
+    }
 }