From 09760789d21a8a09b1cf5e2a739e4e8d9cfa94aa Mon Sep 17 00:00:00 2001 From: mserngawy Date: Fri, 22 May 2015 10:34:06 -0400 Subject: [PATCH 1/1] Junit Test for PacketCable-policy-server project Change-Id: I0daee091e3def42123b510d7aa8a3aa07483e11f Signed-off-by: mserngawy --- packetcable-policy-server/pom.xml | 25 +- .../provider/PacketcableProviderTest.java | 42 +++ .../packetcable/provider/SubnetTest.java | 30 +++ packetcable-provider/pom.xml | 242 ++++++++++-------- .../OpendaylightPacketcableProviderTest.java | 118 +++++++++ .../PacketcableProviderModuleTest.java | 38 +++ 6 files changed, 386 insertions(+), 109 deletions(-) create mode 100644 packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/PacketcableProviderTest.java create mode 100644 packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/SubnetTest.java create mode 100644 packetcable-provider/src/test/java/org/opendaylight/controller/packetcable/providerTest/OpendaylightPacketcableProviderTest.java create mode 100644 packetcable-provider/src/test/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/provider/PacketcableProviderModuleTest.java diff --git a/packetcable-policy-server/pom.xml b/packetcable-policy-server/pom.xml index 2af7323..9dae26a 100644 --- a/packetcable-policy-server/pom.xml +++ b/packetcable-policy-server/pom.xml @@ -12,6 +12,7 @@ 1.2.0-SNAPSHOT + 1.5.1 @@ -58,10 +59,28 @@ junit test - + + org.mockito - mockito-all - 2.0.2-beta + mockito-core + test + + + org.powermock + powermock-core + ${powermock.version} + test + + + org.powermock + powermock-module-junit4 + ${powermock.version} + test + + + org.powermock + powermock-api-mockito + ${powermock.version} test 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 index 0000000..64ff9a3 --- /dev/null +++ b/packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/PacketcableProviderTest.java @@ -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 index 0000000..229c7d7 --- /dev/null +++ b/packetcable-policy-server/src/test/java/org/opendaylight/controller/packetcable/provider/SubnetTest.java @@ -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); + } +} diff --git a/packetcable-provider/pom.xml b/packetcable-provider/pom.xml index 4d6e649..eee361b 100644 --- a/packetcable-provider/pom.xml +++ b/packetcable-provider/pom.xml @@ -1,113 +1,143 @@ - 4.0.0 - - org.opendaylight.packetcable - packetcable - 1.2.0-SNAPSHOT - - packetcable-provider - bundle + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + org.opendaylight.packetcable + packetcable + 1.2.0-SNAPSHOT + + packetcable-provider + bundle - - 1.2.0-SNAPSHOT - + + 1.2.0-SNAPSHOT + 1.5.1 + - - - ${project.groupId} - packetcable-driver - ${project.version} - - - ${project.groupId} - packetcable-model - ${project.version} - - - org.opendaylight.yangtools.model - ietf-inet-types - - - org.opendaylight.yangtools.model - ietf-yang-types - - - org.opendaylight.controller - config-api - - - org.opendaylight.controller - sal-binding-api - - - org.opendaylight.controller - sal-binding-config - - - org.opendaylight.controller - sal-common-util - - - org.osgi - org.osgi.core - - + + + ${project.groupId} + packetcable-driver + ${project.version} + + + ${project.groupId} + packetcable-model + ${project.version} + + + org.opendaylight.yangtools.model + ietf-inet-types + + + org.opendaylight.yangtools.model + ietf-yang-types + + + org.opendaylight.controller + config-api + + + org.opendaylight.controller + sal-binding-api + + + org.opendaylight.controller + sal-binding-config + + + org.opendaylight.controller + sal-common-util + + + org.osgi + org.osgi.core + + + org.mockito + mockito-core + test + + + org.powermock + powermock-core + ${powermock.version} + test + + + org.powermock + powermock-module-junit4 + ${powermock.version} + test + + + org.powermock + powermock-api-mockito + ${powermock.version} + test + + + junit + junit + 4.11 + test + + - - - - maven-checkstyle-plugin - - true - - + + + + maven-checkstyle-plugin + + true + + - - org.apache.felix - maven-bundle-plugin - - - org.opendaylight.controller.config.yang.toaster_provider, - * - - - - - org.opendaylight.yangtools - yang-maven-plugin - - - config - - generate-sources - - - - - org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - ${jmxGeneratorPath} - - urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang - - - - org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl - ${salGeneratorPath} - - - true - - - - - - - - scm:git:ssh://git.opendaylight.org:29418/controller.git - scm:git:ssh://git.opendaylight.org:29418/controller.git - HEAD - https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL - + + org.apache.felix + maven-bundle-plugin + + + org.opendaylight.controller.config.yang.toaster_provider, + * + + + + + org.opendaylight.yangtools + yang-maven-plugin + + + config + + generate-sources + + + + + org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator + ${jmxGeneratorPath} + + urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang + + + + org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl + ${salGeneratorPath} + + + true + + + + + + + + scm:git:ssh://git.opendaylight.org:29418/controller.git + scm:git:ssh://git.opendaylight.org:29418/controller.git + HEAD + https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL + 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 index 0000000..9b8dfb5 --- /dev/null +++ b/packetcable-provider/src/test/java/org/opendaylight/controller/packetcable/providerTest/OpendaylightPacketcableProviderTest.java @@ -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 index 0000000..2eb2f68 --- /dev/null +++ b/packetcable-provider/src/test/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/provider/PacketcableProviderModuleTest.java @@ -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(); + } + +} -- 2.36.6