From f74c5d4157633ea9dd639494586d8d8422cb6bc1 Mon Sep 17 00:00:00 2001 From: Peter Nosal Date: Wed, 31 Aug 2016 16:12:55 +0200 Subject: [PATCH] Bug 5947: additional set of tests for binding-dom-adapter - LazyDataTreeModification - BindingDOMCursorAwareWriteTransactionAdapter Change-Id: Ib5c592d15a3e80559f5c81c5e56b0e75a5e783b5 Signed-off-by: Peter Nosal --- ...ursorAwareWriteTransactionAdapterTest.java | 52 +++++++++++++++++++ .../adapter/LazyDataTreeModificationTest.java | 49 +++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMCursorAwareWriteTransactionAdapterTest.java create mode 100644 binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModificationTest.java 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 index 0000000000..8783ac9730 --- /dev/null +++ b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMCursorAwareWriteTransactionAdapterTest.java @@ -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 index 0000000000..f12bae7a54 --- /dev/null +++ b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/LazyDataTreeModificationTest.java @@ -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 -- 2.36.6