<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>
--- /dev/null
+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");
+ }
+
+}
--- /dev/null
+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);
+ }
+}
<?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>
--- /dev/null
+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();
+ }
+
+}
--- /dev/null
+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();
+ }
+
+}