Added Unit Tests for ovsdb/southbound 80/25980/2
authorrpujar <rpujar@inocybe.com>
Tue, 25 Aug 2015 15:57:49 +0000 (11:57 -0400)
committerrpujar <rpujar@inocybe.com>
Tue, 25 Aug 2015 16:06:28 +0000 (12:06 -0400)
InstanceIdentifierCodecTest.java and OvsdbSchemaContantsTest.java

Change-Id: I91e356dfc6bfc41bac081b9792ff99bfc931c3ae
Signed-off-by: rpujar <rpujar@inocybe.com>
southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/InstanceIdentifierCodecTest.java [new file with mode: 0644]
southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContantsTest.java [new file with mode: 0644]

diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/InstanceIdentifierCodecTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/InstanceIdentifierCodecTest.java
new file mode 100644 (file)
index 0000000..4116ebb
--- /dev/null
@@ -0,0 +1,113 @@
+package org.opendaylight.ovsdb.southbound;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Date;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.opendaylight.controller.sal.core.api.model.SchemaService;
+import org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeSerializer;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.util.AbstractModuleStringInstanceIdentifierCodec;
+import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
+import org.opendaylight.yangtools.yang.model.api.Module;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.api.support.membermodification.MemberModifier;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+@PrepareForTest({AbstractModuleStringInstanceIdentifierCodec.class, DataSchemaContextTree.class})
+@RunWith(PowerMockRunner.class)
+
+public class InstanceIdentifierCodecTest {
+
+    private InstanceIdentifierCodec instanceIdentifierCodec;
+    @Mock private DataSchemaContextTree dataSchemaContextTree;
+    @Mock private SchemaContext context;
+    @Mock private BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer;
+    @Mock private SchemaService schemaService;
+
+    @Before
+    public void setUp() throws IllegalArgumentException, IllegalAccessException {
+        instanceIdentifierCodec = mock(InstanceIdentifierCodec.class, Mockito.CALLS_REAL_METHODS);
+        MemberModifier.field(InstanceIdentifierCodec.class, "dataSchemaContextTree").set(instanceIdentifierCodec, dataSchemaContextTree);
+        MemberModifier.field(InstanceIdentifierCodec.class, "context").set(instanceIdentifierCodec, context);
+        MemberModifier.field(InstanceIdentifierCodec.class, "bindingNormalizedNodeSerializer").set(instanceIdentifierCodec, bindingNormalizedNodeSerializer);
+
+    }
+    @Test
+    public void testInstanceIdentifierCodec() throws Exception {
+        InstanceIdentifierCodec codec = new InstanceIdentifierCodec(schemaService, bindingNormalizedNodeSerializer);
+        verify(schemaService).registerSchemaContextListener(codec);
+    }
+
+    @Test
+    public void testGetDataContextTree() {
+        assertEquals("Error, did not return correct DataSchemaContextTree object", dataSchemaContextTree, instanceIdentifierCodec.getDataContextTree());
+    }
+
+    @Test
+    public void testModuleForPrefix() {
+        Module module = mock(Module.class);
+        when(context.findModuleByName(anyString(),any(Date.class))).thenReturn(module);
+        assertEquals("Error, did not return correct Module object", module, instanceIdentifierCodec.moduleForPrefix(""));
+    }
+
+    @Test
+    public void testPrefixForNamespace() throws URISyntaxException {
+        Module module = mock(Module.class);
+        URI namespace = new URI("");
+        when(context.findModuleByNamespaceAndRevision(any(URI.class), any(Date.class))).thenReturn(null).thenReturn(module);
+        when(module.getName()).thenReturn("");
+        assertEquals("Error, null should have been returned", null, instanceIdentifierCodec.prefixForNamespace(namespace));
+        assertEquals("Error, did not return the correct module name", anyString(), instanceIdentifierCodec.prefixForNamespace(namespace));
+    }
+
+    @Test
+    public void testOnGlobalContextUpdated() {
+        PowerMockito.mockStatic(DataSchemaContextTree.class);
+        when(DataSchemaContextTree.from(any(SchemaContext.class))).thenReturn(dataSchemaContextTree);
+        instanceIdentifierCodec.onGlobalContextUpdated(context);
+        verify(instanceIdentifierCodec).onGlobalContextUpdated(context);
+    }
+
+    @Test
+    public void testSerialize() {
+        InstanceIdentifier<?> iid = mock(InstanceIdentifier.class);
+        YangInstanceIdentifier yIid = mock(YangInstanceIdentifier.class);
+        when(bindingNormalizedNodeSerializer.toYangInstanceIdentifier(iid)).thenReturn(yIid);
+
+        when((PowerMockito.mock(AbstractModuleStringInstanceIdentifierCodec.class)).serialize(yIid)).thenReturn("Serialized IID");
+        assertEquals("Error, did not return correct string", anyString(), instanceIdentifierCodec.serialize(iid));
+    }
+
+    @Test
+    public void testBindingDeserializer() throws Exception {
+        YangInstanceIdentifier yIid = mock(YangInstanceIdentifier.class);
+        when((PowerMockito.mock(AbstractModuleStringInstanceIdentifierCodec.class)).deserialize(anyString())).thenReturn(yIid);
+
+        mock(InstanceIdentifier.class);
+        when(bindingNormalizedNodeSerializer.fromYangInstanceIdentifier(yIid)).thenAnswer(new Answer<InstanceIdentifier<?>>() {
+            public InstanceIdentifier<?> answer(InvocationOnMock invocation) throws Throwable {
+                return (InstanceIdentifier<?>) invocation.getArguments() [0];
+            }
+        });
+
+        assertEquals("Error, did not return correct InstanceIdentifier<?> object", any(InstanceIdentifier.class), instanceIdentifierCodec.bindingDeserializer(""));
+    }
+}
diff --git a/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContantsTest.java b/southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbSchemaContantsTest.java
new file mode 100644 (file)
index 0000000..8be1196
--- /dev/null
@@ -0,0 +1,35 @@
+package org.opendaylight.ovsdb.southbound;
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.ovsdb.southbound.OvsdbSchemaContants.OVSDBSCHEMATABLES;
+
+public class OvsdbSchemaContantsTest {
+
+    private OvsdbSchemaContants ovsdbSchemaContants;
+
+    @Before
+    public void setUp() {
+        ovsdbSchemaContants = new OvsdbSchemaContants();
+    }
+
+    @Test
+    public void testDatabaseName() {
+        assertEquals("Error databaseName did not return correct value","Open_vSwitch",OvsdbSchemaContants.databaseName);
+    }
+    @Test
+    public void testGetTableName() {
+        assertEquals("Error getTableName() did not return correct value", "Open_vSwitch", OVSDBSCHEMATABLES.OPENVSWITCH.getTableName());
+    }
+
+    @Test
+    public void testGetParentTableName() {
+        assertEquals("Error getTableName() did not return correct value", null, OVSDBSCHEMATABLES.OPENVSWITCH.getParentTableName());
+    }
+
+    @Test
+    public void testGetColumnNameInParentTable() {
+        assertEquals("Error getTableName() did not return correct value", null, OVSDBSCHEMATABLES.OPENVSWITCH.getColumnNameInParentTable());
+    }
+}