Junit Test for PacketCable-policy-server project 87/20987/3
authormserngawy <melserngawy@inocybe.com>
Fri, 22 May 2015 14:34:06 +0000 (10:34 -0400)
committermserngawy <melserngawy@inocybe.com>
Fri, 22 May 2015 20:51:01 +0000 (16:51 -0400)
Change-Id: I0daee091e3def42123b510d7aa8a3aa07483e11f
Signed-off-by: mserngawy <melserngawy@inocybe.com>
packetcable-policy-server/pom.xml
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/PacketcableProviderTest.java [new file with mode: 0644]
packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/SubnetTest.java [new file with mode: 0644]
packetcable-provider/pom.xml
packetcable-provider/src/test/java/org/opendaylight/controller/packetcable/providerTest/OpendaylightPacketcableProviderTest.java [new file with mode: 0644]
packetcable-provider/src/test/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/provider/PacketcableProviderModuleTest.java [new file with mode: 0644]

index 2af732314d8ca219009ec2fc33a835f65081bab9..9dae26ac7d8e70cd5a2465a1d4d2ed452eaf628e 100644 (file)
@@ -12,6 +12,7 @@
 
     <properties>
         <sal-binding-api.version>1.2.0-SNAPSHOT</sal-binding-api.version>
+        <powermock.version>1.5.1</powermock.version>
     </properties>
 
     <dependencies>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
+
+         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>2.0.2-beta</version>
+              <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-core</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-module-junit4</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+           </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-api-mockito</artifactId>
+            <version>${powermock.version}</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/PacketcableProviderTest.java b/packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/PacketcableProviderTest.java
new file mode 100644 (file)
index 0000000..64ff9a3
--- /dev/null
@@ -0,0 +1,42 @@
+package org.opendaylight.controller.packetcable.provider;
+
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.net.InetAddress;
+import java.util.concurrent.ExecutionException;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.controller.packetcable.provider.PacketcableProvider;
+
+@RunWith(MockitoJUnitRunner.class)
+public class PacketcableProviderTest {
+
+    @Mock InetAddress inetAddress;
+    @Mock PacketcableProvider packetCableProv;
+
+    @Before
+    public void setUp() throws Exception {
+        when(packetCableProv.getInetAddress(any(String.class))).thenReturn(inetAddress);
+    }
+
+    @Test
+    public final void testClose() throws ExecutionException, InterruptedException {
+        packetCableProv.close();
+        verify(packetCableProv, times(1)).close();
+    }
+
+    @Test
+    public final void testGetInetAddress() {
+      assertNotNull(packetCableProv.getInetAddress("127.0.0.1"));
+      verify(packetCableProv).getInetAddress("127.0.0.1");
+    }
+
+}
diff --git a/packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/SubnetTest.java b/packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/SubnetTest.java
new file mode 100644 (file)
index 0000000..229c7d7
--- /dev/null
@@ -0,0 +1,30 @@
+package org.opendaylight.controller.packetcable.provider;
+
+
+import static org.junit.Assert.*;
+
+
+import java.net.UnknownHostException;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import com.google.common.net.InetAddresses;
+
+@RunWith(MockitoJUnitRunner.class)
+public class SubnetTest {
+
+    @Test
+    public final void testCreateInstance() throws UnknownHostException {
+           Subnet localSubnet = Subnet.createInstance("192.168.0.0/255.255.255.0");
+           assertNotNull(localSubnet);
+           assertEquals("192.168.0.0/255.255.255.0", localSubnet.toString());
+           assertEquals(Subnet.createInstance("192.168.0.0/255.255.255.0"), localSubnet);
+    }
+}
index 4d6e649ea1973fd01ec42aa075bbba05087ddc3b..eee361b4d6a1770f5830e68603345085a799545d 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.opendaylight.packetcable</groupId>
-               <artifactId>packetcable</artifactId>
-               <version>1.2.0-SNAPSHOT</version>
-       </parent>
-       <artifactId>packetcable-provider</artifactId>
-       <packaging>bundle</packaging>
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.packetcable</groupId>
+        <artifactId>packetcable</artifactId>
+        <version>1.2.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>packetcable-provider</artifactId>
+    <packaging>bundle</packaging>
 
-       <properties>
-               <sal-binding-api.version>1.2.0-SNAPSHOT</sal-binding-api.version>
-       </properties>
+    <properties>
+        <sal-binding-api.version>1.2.0-SNAPSHOT</sal-binding-api.version>
+        <powermock.version>1.5.1</powermock.version>
+    </properties>
 
-       <dependencies>
-               <dependency>
-                       <groupId>${project.groupId}</groupId>
-                       <artifactId>packetcable-driver</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>${project.groupId}</groupId>
-                       <artifactId>packetcable-model</artifactId>
-                       <version>${project.version}</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.yangtools.model</groupId>
-                       <artifactId>ietf-inet-types</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.yangtools.model</groupId>
-                       <artifactId>ietf-yang-types</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>config-api</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>sal-binding-api</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>sal-binding-config</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.opendaylight.controller</groupId>
-                       <artifactId>sal-common-util</artifactId>
-               </dependency>
-               <dependency>
-                       <groupId>org.osgi</groupId>
-                       <artifactId>org.osgi.core</artifactId>
-               </dependency>
-       </dependencies>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>packetcable-driver</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>packetcable-model</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools.model</groupId>
+            <artifactId>ietf-inet-types</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.yangtools.model</groupId>
+            <artifactId>ietf-yang-types</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>config-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-binding-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>sal-common-util</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-core</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-module-junit4</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.powermock</groupId>
+            <artifactId>powermock-api-mockito</artifactId>
+            <version>${powermock.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
 
-       <build>
-               <plugins>
-                       <plugin>
-                               <artifactId>maven-checkstyle-plugin</artifactId>
-                               <configuration>
-                                       <skip>true</skip>
-                               </configuration>
-                       </plugin>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
 
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <configuration>
-                                       <instructions>
-                                               <Export-Package>org.opendaylight.controller.config.yang.toaster_provider,</Export-Package>
-                                               <Import-Package>*</Import-Package>
-                                       </instructions>
-                               </configuration>
-                       </plugin>
-                       <plugin>
-                               <groupId>org.opendaylight.yangtools</groupId>
-                               <artifactId>yang-maven-plugin</artifactId>
-                               <executions>
-                                       <execution>
-                                               <id>config</id>
-                                               <goals>
-                                                       <goal>generate-sources</goal>
-                                               </goals>
-                                               <configuration>
-                                                       <codeGenerators>
-                                                               <generator>
-                                                                       <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
-                                                                       <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
-                                                                       <additionalConfiguration>
-                                                                               <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang</namespaceToPackage1>
-                                                                       </additionalConfiguration>
-                                                               </generator>
-                                                               <generator>
-                                                                       <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
-                                                                       <outputBaseDir>${salGeneratorPath}</outputBaseDir>
-                                                               </generator>
-                                                       </codeGenerators>
-                                                       <inspectDependencies>true</inspectDependencies>
-                                               </configuration>
-                                       </execution>
-                               </executions>
-                       </plugin>
-               </plugins>
-       </build>
-       <scm>
-               <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-               <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-               <tag>HEAD</tag>
-               <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-       </scm>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Export-Package>org.opendaylight.controller.config.yang.toaster_provider,</Export-Package>
+                        <Import-Package>*</Import-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.opendaylight.yangtools</groupId>
+                <artifactId>yang-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>config</id>
+                        <goals>
+                            <goal>generate-sources</goal>
+                        </goals>
+                        <configuration>
+                            <codeGenerators>
+                                <generator>
+                                    <codeGeneratorClass>org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator</codeGeneratorClass>
+                                    <outputBaseDir>${jmxGeneratorPath}</outputBaseDir>
+                                    <additionalConfiguration>
+                                        <namespaceToPackage1>urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang</namespaceToPackage1>
+                                    </additionalConfiguration>
+                                </generator>
+                                <generator>
+                                    <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
+                                    <outputBaseDir>${salGeneratorPath}</outputBaseDir>
+                                </generator>
+                            </codeGenerators>
+                            <inspectDependencies>true</inspectDependencies>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+    <scm>
+        <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+        <tag>HEAD</tag>
+        <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
+    </scm>
 </project>
diff --git a/packetcable-provider/src/test/java/org/opendaylight/controller/packetcable/providerTest/OpendaylightPacketcableProviderTest.java b/packetcable-provider/src/test/java/org/opendaylight/controller/packetcable/providerTest/OpendaylightPacketcableProviderTest.java
new file mode 100644 (file)
index 0000000..9b8dfb5
--- /dev/null
@@ -0,0 +1,118 @@
+package org.opendaylight.controller.packetcable.providerTest;
+
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.Spy;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.packetcable.provider.OpendaylightPacketcableProvider;
+import org.opendaylight.controller.packetcable.provider.processors.PCMMDataProcessor;
+import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.traffic.profile.rev140908.TrafficProfileBestEffortAttributes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.traffic.profile.rev140908.TrafficProfileDocsisServiceClassNameAttributes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.traffic.profile.rev140908.TrafficProfileFlowspecAttributes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.node.cmts.broker.rev140909.CmtsAdded;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.node.cmts.broker.rev140909.CmtsRemoved;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.node.cmts.broker.rev140909.CmtsUpdated;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.node.cmts.rev140909.nodes.node.CmtsNode;
+
+@RunWith(MockitoJUnitRunner.class)
+public class OpendaylightPacketcableProviderTest {
+
+    @Mock
+    private NotificationProviderService notificationProvider;
+    @Mock
+    private DataBroker dataBroker;
+    // @Spy private NotificationProviderService spyNotificationProvider;
+    @Mock
+    private PCMMDataProcessor pcmmDataProcessor;
+    @Mock
+    private CmtsAdded cmtsAdd;
+    @Mock
+    private CmtsRemoved cmtsRemove;
+    @Mock
+    private CmtsUpdated cmtsUpdate;
+    @Mock
+    private ExecutorService executorMock;
+    @Mock
+    private TrafficProfileDocsisServiceClassNameAttributes docsis;
+    @Mock
+    private TrafficProfileBestEffortAttributes bestEffort;
+    @Mock
+    private TrafficProfileFlowspecAttributes flowSpec;
+    @Mock
+    private CmtsNode cmtsNode;
+    @Mock
+    private TransactionId transactionId;
+
+    @Mock
+    private OpendaylightPacketcableProvider packetCableProv;// =
+                                                            // mock(OpendaylightPacketcableProvider.class);
+
+    @Before
+    public void setUp() throws Exception {
+        packetCableProv.setNotificationProvider(notificationProvider);
+        packetCableProv.setDataProvider(dataBroker);
+        assertNotNull(packetCableProv);
+    }
+
+    @Test
+    public final void testNotifyConsumerOnCmtsAdd() {
+        packetCableProv.notifyConsumerOnCmtsAdd(cmtsNode, transactionId);
+        verify(packetCableProv, times(1)).notifyConsumerOnCmtsAdd(
+                any(CmtsNode.class), any(TransactionId.class));
+    }
+
+    @Test
+    public final void testNotifyConsumerOnCmtsRemove() {
+        packetCableProv.notifyConsumerOnCmtsRemove(cmtsNode, transactionId);
+        verify(packetCableProv, times(1)).notifyConsumerOnCmtsRemove(
+                any(CmtsNode.class), any(TransactionId.class));
+    }
+
+    @Test
+    public final void testNotifyConsumerOnCmtsUpdate() {
+        packetCableProv.notifyConsumerOnCmtsUpdate(cmtsNode, transactionId);
+        verify(packetCableProv, times(1)).notifyConsumerOnCmtsUpdate(
+                any(CmtsNode.class), any(TransactionId.class));
+    }
+
+    @Test
+    public final void testBuildTrafficProfileTrafficProfileDocsisServiceClassNameAttributes() {
+        packetCableProv.buildTrafficProfile(docsis);
+        verify(packetCableProv, times(1)).buildTrafficProfile(docsis);
+    }
+
+    @Test
+    public final void testBuildTrafficProfileTrafficProfileBestEffortAttributes() {
+        packetCableProv.buildTrafficProfile(bestEffort);
+        verify(packetCableProv, times(1)).buildTrafficProfile(bestEffort);
+    }
+
+    @Test
+    public final void testBuildTrafficProfileTrafficProfileFlowspecAttributes() {
+        packetCableProv.buildTrafficProfile(flowSpec);
+        verify(packetCableProv, times(1)).buildTrafficProfile(flowSpec);
+    }
+
+    @Test
+    public final void testClose() throws ExecutionException,
+            InterruptedException {
+        packetCableProv.close();
+        verify(packetCableProv, times(1)).close();
+    }
+
+}
diff --git a/packetcable-provider/src/test/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/provider/PacketcableProviderModuleTest.java b/packetcable-provider/src/test/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/provider/PacketcableProviderModuleTest.java
new file mode 100644 (file)
index 0000000..2eb2f68
--- /dev/null
@@ -0,0 +1,38 @@
+package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.provider;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
+import static org.junit.Assert.*;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.controller.packetcable.provider.OpendaylightPacketcableProvider;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.provider.impl.rev140131.PacketcableProviderModule;
+
+@RunWith(MockitoJUnitRunner.class)
+public class PacketcableProviderModuleTest {
+
+    @Mock
+    private OpendaylightPacketcableProvider provider;
+    @InjectMocks
+    private PacketcableProviderModule packetCableProviderModuleMock = mock(PacketcableProviderModule.class);
+
+    @Before
+    public void setUp() throws Exception {
+        when(packetCableProviderModuleMock.createInstance()).thenReturn(
+                provider);
+    }
+
+    @Test
+    public final void testCreateInstance() {
+        assertNotNull(packetCableProviderModuleMock.createInstance());
+        verify(packetCableProviderModuleMock, times(1)).createInstance();
+    }
+
+}