Junit Test for PacketCable-policy-server project
[packetcable.git] / packetcable-provider / src / test / java / org / opendaylight / controller / packetcable / providerTest / OpendaylightPacketcableProviderTest.java
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();
+    }
+
+}