Bug 5947: additional tests for binding-dom-adapter 46/44846/5
authorPeter Nosal <peter.nosal@pantheon.tech>
Tue, 30 Aug 2016 12:51:47 +0000 (14:51 +0200)
committerRobert Varga <nite@hq.sk>
Tue, 6 Sep 2016 11:41:41 +0000 (11:41 +0000)
- FutureSchema
- BindingDOMTransactionChainAdapter
- BindingDOMRpcImplementationAdapter
- BindingDOMRpcAdapterRegistration

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

index 0dda3eabee8a2b3ef63dc22da876e45b3319df15..918bc33d38c36c1baa3f130e05a806e1e77dff45 100644 (file)
@@ -24,5 +24,4 @@ public class BindingDOMRpcAdapterRegistrationTest {
         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/BindingDOMRpcImplementationAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcImplementationAdapterTest.java
new file mode 100644 (file)
index 0000000..1c75849
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * 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.Mockito.mock;
+
+import com.google.common.collect.ImmutableMap;
+import java.lang.reflect.Method;
+import java.net.URI;
+import java.util.Date;
+import org.junit.Test;
+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.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+
+public class BindingDOMRpcImplementationAdapterTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        final BindingNormalizedNodeCodecRegistry registry = mock(BindingNormalizedNodeCodecRegistry.class);
+        final Method testMethod = this.getClass().getDeclaredMethod("testMethod");
+        final SchemaPath schemaPath = SchemaPath.create(true,
+                QName.create(QNameModule.create(new URI("tst"), new Date()), "test"));
+        final BindingDOMRpcImplementationAdapter adapter =
+                new BindingDOMRpcImplementationAdapter(registry, OpendaylightTestRpcServiceService.class,
+                        ImmutableMap.of(schemaPath, testMethod), mock(OpendaylightTestRpcServiceService.class));
+        assertNotNull(adapter);
+    }
+
+    private void testMethod() {
+        //NOOP
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMTransactionChainAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMTransactionChainAdapterTest.java
new file mode 100644 (file)
index 0000000..29937c1
--- /dev/null
@@ -0,0 +1,79 @@
+/*
+ * 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.doNothing;
+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 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.DOMDataTreeReadTransaction;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
+import org.opendaylight.mdsal.dom.api.DOMService;
+import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
+import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
+import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
+
+public class BindingDOMTransactionChainAdapterTest {
+
+    @Mock
+    private DOMDataBroker domService;
+
+    @Mock
+    private DOMTransactionChain transactionChain;
+
+    @Mock
+    private BindingNormalizedNodeCodecRegistry mockCodecRegistry;
+
+    private BindingDOMTransactionChainAdapter bindingDOMTransactionChainAdapter;
+
+    @Before
+    public void setUp() throws Exception {
+        initMocks(this);
+        doReturn(transactionChain).when(domService).createTransactionChain(any());
+        BindingDOMAdapterLoader bindingDOMAdapterLoader = new BindingDOMAdapterLoader(
+                new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(),
+                        mockCodecRegistry)) {
+            @Nullable
+            @Override
+            protected DOMService getDelegate(Class<? extends DOMService> reqDeleg) {
+                return domService;
+            }
+        };
+
+        BindingDOMDataBrokerAdapter bindingDOMDataBrokerAdapter =
+                (BindingDOMDataBrokerAdapter) bindingDOMAdapterLoader.load(DataBroker.class).get();
+        bindingDOMTransactionChainAdapter =
+                (BindingDOMTransactionChainAdapter) bindingDOMDataBrokerAdapter.createTransactionChain(null);
+        assertNotNull(bindingDOMTransactionChainAdapter.getDelegate());
+        doNothing().when(transactionChain).close();
+        bindingDOMTransactionChainAdapter.close();
+        verify(transactionChain).close();
+    }
+
+    @Test
+    public void readTransactionTest() throws Exception {
+        doReturn(mock(DOMDataTreeReadTransaction.class)).when(transactionChain).newReadOnlyTransaction();
+        assertNotNull(bindingDOMTransactionChainAdapter.newReadOnlyTransaction());
+    }
+
+    @Test
+    public void writeTransactionTest() throws Exception {
+        doReturn(mock(DOMDataTreeWriteTransaction.class)).when(transactionChain).newWriteOnlyTransaction();
+        assertNotNull(bindingDOMTransactionChainAdapter.newWriteOnlyTransaction());
+    }
+}
\ No newline at end of file
diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/FutureSchemaTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/FutureSchemaTest.java
new file mode 100644 (file)
index 0000000..d688599
--- /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.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+import com.google.common.collect.ImmutableSet;
+import java.net.URI;
+import java.util.Date;
+import java.util.concurrent.TimeUnit;
+import org.junit.Test;
+
+public class FutureSchemaTest {
+
+    @Test
+    public void basicTest() throws Exception {
+        final FutureSchema futureSchema = new FutureSchema(0, TimeUnit.MICROSECONDS);
+        assertNotNull(futureSchema);
+        assertFalse(futureSchema.waitForSchema(new URI("test"), new Date(0)));
+        assertFalse(futureSchema.waitForSchema(ImmutableSet.of()));
+        assertEquals(0, futureSchema.getDuration());
+        assertEquals(TimeUnit.MICROSECONDS, futureSchema.getUnit());
+    }
+}
\ No newline at end of file