Added Mockito and PowerMock to the neutron pom.xml 51/3951/3
authorDave Tucker <dave@dtucker.co.uk>
Sat, 28 Dec 2013 20:19:37 +0000 (20:19 +0000)
committerDave Tucker <dave@dtucker.co.uk>
Sun, 29 Dec 2013 20:14:44 +0000 (20:14 +0000)
Unit test coverage for AdminConfigManager
Unit test coverage for NetworkHandler

Change-Id: Ice7582e2a9f4dd5a4b7c9fdac01e86196f48ccf4
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
neutron/pom.xml
neutron/src/test/java/org/opendaylight/ovsdb/neutron/AdminConfigManagerTest.java [new file with mode: 0644]
neutron/src/test/java/org/opendaylight/ovsdb/neutron/BaseHandlerTest.java
neutron/src/test/java/org/opendaylight/ovsdb/neutron/NetworkHandlerTest.java [new file with mode: 0644]

index b6ff856e67a9a8a696c63778d37a4e176158fe13..11762ef7b1e866a43343675ebe6bed4ad43fc362 100644 (file)
       <artifactId>sal-common-util</artifactId>
       <version>1.0-SNAPSHOT</version>
     </dependency>
+    <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.11</version>
+        <scope>test</scope>
+    </dependency>
+    <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-all</artifactId>
+        <version>1.9.5</version>
+        <scope>test</scope>
+    </dependency>
+    <dependency>
+        <groupId>org.powermock</groupId>
+        <artifactId>powermock-module-junit4</artifactId>
+        <version>1.5.2</version>
+        <scope>test</scope>
+    </dependency>
+    <dependency>
+        <groupId>org.powermock</groupId>
+        <artifactId>powermock-api-mockito</artifactId>
+        <version>1.5.2</version>
+        <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
diff --git a/neutron/src/test/java/org/opendaylight/ovsdb/neutron/AdminConfigManagerTest.java b/neutron/src/test/java/org/opendaylight/ovsdb/neutron/AdminConfigManagerTest.java
new file mode 100644 (file)
index 0000000..dca3eaa
--- /dev/null
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
+ * 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
+ *
+ * Contributors:
+ *    Dave Tucker (HP) - Added unit tests for the AdminConfigManager class.
+ *******************************************************************************/
+
+package org.opendaylight.ovsdb.neutron;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.any;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.opendaylight.ovsdb.lib.notation.OvsDBMap;
+import org.opendaylight.ovsdb.lib.table.Open_vSwitch;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+
+import org.opendaylight.controller.sal.core.Node;
+import org.opendaylight.ovsdb.plugin.ConfigurationService;
+import org.opendaylight.ovsdb.plugin.OVSDBConfigService;
+import org.opendaylight.controller.sal.utils.ServiceHelper;
+
+import java.net.InetAddress;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.opendaylight.ovsdb.lib.table.internal.Table;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(ServiceHelper.class)
+public class AdminConfigManagerTest {
+    @Test
+    public void testPopulateTunnelEndpoint() throws Exception {
+        InetAddress testAddress = InetAddress.getByName("10.10.10.10");
+
+        Node mockNode = mock(Node.class);
+
+        Map<String, Table<?>> ovsMap = new HashMap<String, Table<?>>();
+
+        Open_vSwitch ovsTable = new Open_vSwitch();
+        OvsDBMap localIp = new OvsDBMap();
+        localIp.put("local_ip", "10.10.10.10");
+        ovsTable.setOther_config(localIp);
+        ovsMap.put("Open_vSwitch", ovsTable);
+
+        OVSDBConfigService ovsdbConfig = mock(ConfigurationService.class);
+        when(ovsdbConfig.getRows(any(Node.class), anyString())).thenReturn(ovsMap);
+
+        PowerMockito.mockStatic(ServiceHelper.class);
+        when(ServiceHelper.getGlobalInstance(eq(OVSDBConfigService.class), anyObject())).thenReturn(ovsdbConfig);
+
+        AdminConfigManager.getManager().populateTunnelEndpoint(mockNode);
+
+        assertEquals(testAddress, AdminConfigManager.getManager().getTunnelEndPoint(mockNode));
+    }
+}
index a8a7f2cf85e065c5404b62eba386213ddd4eee1d..f00eb91faa2a226c4c5255e0c1e1b39fcf35de7f 100644 (file)
@@ -6,39 +6,65 @@
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- *    Dave Tucker (HP) - Added unit tests for the BaseHandler class
+ *    Dave Tucker (HP) - Added unit tests for the BaseHandler class.
+ *                     - Migrated test cases to JUnit4
  *******************************************************************************/
 
 package org.opendaylight.ovsdb.neutron;
 
-import junit.framework.TestCase;
+import java.net.HttpURLConnection;
 
-public class BaseHandlerTest extends TestCase {
+import static org.junit.Assert.*;
 
-    BaseHandler test = new BaseHandler();
+import org.junit.Test;
+
+import org.opendaylight.controller.sal.utils.Status;
+import org.opendaylight.controller.sal.utils.StatusCode;
+
+public class BaseHandlerTest {
 
     String nullString = null;
     String uuid = "ce044452-f22e-4ea4-a3ec-d1cde80cf996";
     String tenantId = "8d62bfa112fb4247aa20edc74235c1ce";
     String neutronId = "6b8fd2";
 
-    public void testIsValidNeutronID() throws Exception {
-        assertFalse(test.isValidNeutronID(nullString));
-        assertTrue(test.isValidNeutronID(uuid));
-        assertTrue(test.isValidNeutronID(tenantId));
-        assertTrue(test.isValidNeutronID(neutronId));
+    @Test
+    public void testGetException() {
+
+        Status badRequest = new Status(StatusCode.BADREQUEST);
+        Status conflict = new Status(StatusCode.CONFLICT);
+        Status notAcceptable = new Status(StatusCode.NOTACCEPTABLE);
+        Status notFound = new Status(StatusCode.NOTFOUND);
+        Status internalError = new Status(StatusCode.INTERNALERROR);
+
+
+        assertEquals(HttpURLConnection.HTTP_BAD_REQUEST, BaseHandler.getException(badRequest));
+        assertEquals(HttpURLConnection.HTTP_CONFLICT, BaseHandler.getException(conflict));
+        assertEquals(HttpURLConnection.HTTP_NOT_ACCEPTABLE, BaseHandler.getException(notAcceptable));
+        assertEquals(HttpURLConnection.HTTP_NOT_FOUND, BaseHandler.getException(notFound));
+        assertEquals(HttpURLConnection.HTTP_INTERNAL_ERROR, BaseHandler.getException(internalError));
+
+    }
+
+    @Test
+    public void testIsValidNeutronID() {
+        assertFalse(BaseHandler.isValidNeutronID(nullString));
+        assertTrue(BaseHandler.isValidNeutronID(uuid));
+        assertTrue(BaseHandler.isValidNeutronID(tenantId));
+        assertTrue(BaseHandler.isValidNeutronID(neutronId));
 
     }
 
-    public void testConvertNeutronIDToKey() throws Exception {
+    @Test
+    public void testConvertNeutronIDToKey() {
 
-        String uuidResult = test.convertNeutronIDToKey(uuid);
+        String uuidResult = BaseHandler.convertNeutronIDToKey(uuid);
         String uuidExpected = "ce044452f22eea4a3ecd1cde80cf996";
 
-        String tenantResult = test.convertNeutronIDToKey(tenantId);
+        String tenantResult = BaseHandler.convertNeutronIDToKey(tenantId);
         String tenantExpected = "8d62bfa112fb247aa20edc74235c1ce";
 
-        String neutronResult = test.convertNeutronIDToKey(neutronId);
+        String neutronResult = BaseHandler.convertNeutronIDToKey(neutronId);
 
         assertEquals(uuidExpected, uuidResult);
         assertEquals(tenantExpected, tenantResult);
diff --git a/neutron/src/test/java/org/opendaylight/ovsdb/neutron/NetworkHandlerTest.java b/neutron/src/test/java/org/opendaylight/ovsdb/neutron/NetworkHandlerTest.java
new file mode 100644 (file)
index 0000000..b353300
--- /dev/null
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
+ * 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
+ *
+ * Contributors:
+ *    Dave Tucker (HP) - Added unit tests for the NetworkHandler class.
+ *******************************************************************************/
+
+package org.opendaylight.ovsdb.neutron;
+
+import java.net.HttpURLConnection;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+
+import org.opendaylight.controller.networkconfig.neutron.NeutronNetwork;
+import org.powermock.reflect.Whitebox;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest(TenantNetworkManager.class)
+
+public class NetworkHandlerTest {
+
+    NetworkHandler testNetworkHandler = new NetworkHandler();
+
+    @Test
+    public void testCanCreateNetwork() throws Exception {
+        NeutronNetwork mockNet = mock(NeutronNetwork.class);
+
+        when(mockNet.isShared())
+                .thenReturn(true)
+                .thenReturn(false);
+
+        assertEquals(HttpURLConnection.HTTP_NOT_ACCEPTABLE, testNetworkHandler.canCreateNetwork(mockNet));
+        assertEquals(HttpURLConnection.HTTP_CREATED, testNetworkHandler.canCreateNetwork(mockNet));
+
+    }
+
+    @Test
+    public void testNeutronNetworkCreated() {
+        String netId = "6cfdb7";
+        NeutronNetwork mockNet = mock(NeutronNetwork.class);
+        when(mockNet.isShared()).thenReturn(false);
+        when(mockNet.getID()).thenReturn(netId);
+
+        TenantNetworkManager tenantNetworkManager = mock(TenantNetworkManager.class);
+        Whitebox.setInternalState(TenantNetworkManager.class, "tenantHelper", tenantNetworkManager);
+
+        testNetworkHandler.neutronNetworkCreated(mockNet);
+
+        verify(tenantNetworkManager).networkCreated(netId);
+    }
+
+    @Test
+    public void testCanUpdateNetwork() {
+        NeutronNetwork delta = new NeutronNetwork();
+        NeutronNetwork original = new NeutronNetwork();
+
+        assertEquals(HttpURLConnection.HTTP_OK, testNetworkHandler.canUpdateNetwork(delta, original));
+    }
+
+    @Test
+    public void testCanDeleteNetwork() throws Exception {
+        NeutronNetwork network = new NeutronNetwork();
+
+        assertEquals(HttpURLConnection.HTTP_OK, testNetworkHandler.canDeleteNetwork(network));
+    }
+
+    @Test
+    public void testNeutronNetworkDeleted() throws Exception {
+        String netId = "6cfdb7";
+
+        NeutronNetwork mockNet = mock(NeutronNetwork.class);
+        when(mockNet.isShared()).thenReturn(false);
+        when(mockNet.getID()).thenReturn(netId);
+
+        NetworkHandler spy = spy(testNetworkHandler);
+
+        TenantNetworkManager tenantNetworkManager = mock(TenantNetworkManager.class);
+        Whitebox.setInternalState(TenantNetworkManager.class, "tenantHelper", tenantNetworkManager);
+
+        when(spy.canDeleteNetwork(mockNet))
+                .thenReturn(HttpURLConnection.HTTP_BAD_REQUEST)
+                .thenCallRealMethod();
+
+        spy.neutronNetworkDeleted(mockNet);
+        spy.neutronNetworkDeleted(mockNet);
+
+        verify(tenantNetworkManager).networkDeleted(netId);
+
+    }
+}