Bug 5947: additional set of tests for binding-dom-adapter 32/44932/2
authorPeter Nosal <peter.nosal@pantheon.tech>
Wed, 31 Aug 2016 14:12:55 +0000 (16:12 +0200)
committerPeter Nosal <peter.nosal@pantheon.sk>
Fri, 2 Sep 2016 08:16:56 +0000 (08:16 +0000)
- LazyDataTreeModification
- BindingDOMCursorAwareWriteTransactionAdapter

Change-Id: Ib5c592d15a3e80559f5c81c5e56b0e75a5e783b5
Signed-off-by: Peter Nosal <peter.nosal@pantheon.tech>
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMCursorAwareWriteTransactionAdapterTest.java [new file with mode: 0644]
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModificationTest.java [new file with mode: 0644]

diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMCursorAwareWriteTransactionAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMCursorAwareWriteTransactionAdapterTest.java
new file mode 100644 (file)
index 0000000..8783ac9
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * 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.junit.Assert.assertTrue;
+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 org.junit.Test;
+import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction;
+import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
+import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+
+public class BindingDOMCursorAwareWriteTransactionAdapterTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        final DOMDataTreeCursorAwareTransaction delegate = mock(DOMDataTreeCursorAwareTransaction.class);
+        final BindingNormalizedNodeCodecRegistry registry = mock(BindingNormalizedNodeCodecRegistry.class);
+        final BindingToNormalizedNodeCodec codec =
+                new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(), registry);
+        final YangInstanceIdentifier yangInstanceIdentifier = YangInstanceIdentifier.EMPTY;
+        doReturn(yangInstanceIdentifier).when(registry).toYangInstanceIdentifier(any());
+
+        final BindingDOMCursorAwareWriteTransactionAdapter adapter =
+                new BindingDOMCursorAwareWriteTransactionAdapter<>(delegate, codec);
+
+        assertNotNull(adapter.createCursor(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
+                InstanceIdentifier.create(DataObject.class))));
+
+        doReturn(null).when(delegate).submit();
+        adapter.submit();
+        verify(delegate).submit();
+
+        doReturn(true).when(delegate).cancel();
+        assertTrue(adapter.cancel());
+        verify(delegate).cancel();
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModificationTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModificationTest.java
new file mode 100644 (file)
index 0000000..f12bae7
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * 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 org.junit.Test;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree;
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeNode;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeCandidate;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
+import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
+import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
+
+public class LazyDataTreeModificationTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        final BindingNormalizedNodeCodecRegistry registry = mock(BindingNormalizedNodeCodecRegistry.class);
+        final BindingToNormalizedNodeCodec codec =
+                new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(), registry);
+        final DOMDataTreeCandidate domDataTreeCandidate = mock(DOMDataTreeCandidate.class);
+        final DOMDataTreeIdentifier domDataTreeIdentifier =
+                new DOMDataTreeIdentifier(LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.EMPTY);
+        doReturn(InstanceIdentifier.create(DataObject.class)).when(registry).fromYangInstanceIdentifier(any());
+        final BindingCodecTree bindingCodecTree = mock(BindingCodecTree.class);
+        final BindingCodecTreeNode bindingCodecTreeNode = mock(BindingCodecTreeNode.class);
+        doReturn(bindingCodecTreeNode).when(bindingCodecTree).getSubtreeCodec(any(InstanceIdentifier.class));
+        doReturn(bindingCodecTree).when(registry).getCodecContext();
+        doReturn(domDataTreeIdentifier).when(domDataTreeCandidate).getRootPath();
+        doReturn(mock(DataTreeCandidateNode.class)).when(domDataTreeCandidate).getRootNode();
+
+        assertNotNull(LazyDataTreeModification.create(codec, domDataTreeCandidate));
+    }
+
+}
\ No newline at end of file