BUG-6857: Network topology configuration file loader test 14/47614/6
authorClaudio D. Gasparini <cgaspari@cisco.com>
Tue, 25 Oct 2016 11:34:15 +0000 (13:34 +0200)
committerMilos Fabian <milfabia@cisco.com>
Fri, 28 Oct 2016 18:42:39 +0000 (18:42 +0000)
 Network topology configuration file loader
 implementation test

Change-Id: I243aac6f2de35b8f867c766116fa6b0a9d6278bd
Signed-off-by: Claudio D. Gasparini <cgaspari@cisco.com>
bgp/config-loader-impl/src/test/java/org/opendaylight/protocol/bgp/config/loader/impl/AbstractConfigLoader.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/ProtocolsConfigFileProcessorTest.java
bgp/topology-provider/pom.xml
bgp/topology-provider/src/test/java/org/opendaylight/bgpcep/bgp/topology/provider/NetworkTopologyConfigFileProcessorTest.java [new file with mode: 0644]
bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/AbstractTopologyBuilderModuleTest.java [new file with mode: 0644]
bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/Ipv4ReachabilityTopologyBuilderModuleTest.java
bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/Ipv6ReachabilityTopologyBuilderModuleTest.java
bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/LinkstateTopologyBuilderModuleTest.java

index d1803f213884ca6ca401b5aee4b89c82f0a1f23e..a31599e9c0509a49f21be29097d4f7f408f506bb 100644 (file)
@@ -79,11 +79,13 @@ public abstract class AbstractConfigLoader {
         this.configLoader = new ConfigLoaderImpl(schemaContext, this.mappingService, getResourceFolder(), this.watchService);
     }
 
-    protected synchronized void clearEvent() {
+    private synchronized void clearEvent() {
         this.eventList.clear();
     }
 
-    protected abstract String getResourceFolder();
+    protected String getResourceFolder() {
+        return ClassLoader.getSystemClassLoader().getResource("initial").getPath();
+    }
 
     protected abstract void registerModules(final ModuleInfoBackedContext moduleInfoBackedContext) throws Exception;
 
index affd2c3cdd8d7eb57ea39790c0e889a6fbffe42f..c745b494c7e86e051d6ffcd261fcc014b8ad84ab 100644 (file)
@@ -50,11 +50,6 @@ public class ProtocolsConfigFileProcessorTest extends AbstractConfigLoader {
         doNothing().when(this.bgpDeployer).onNeighborModified(any(), any(), any());
     }
 
-    @Override
-    protected String getResourceFolder() {
-        return ClassLoader.getSystemClassLoader().getResource("initial").getPath();
-    }
-
     @Override
     protected void registerModules(final ModuleInfoBackedContext moduleInfoBackedContext) throws Exception {
         moduleInfoBackedContext.registerModuleInfo(BindingReflections.getModuleInfo(NetworkInstances.class));
index 66cbf062b1eb29ea22092ae9473038799c227f70..743b00ad77dc2c819b19b0336abee29f3b53780a 100644 (file)
         </dependency>
 
         <!-- Test dependencies -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>bgp-config-loader-impl</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>bgp-config-loader-impl</artifactId>
         </dependency>
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <version>1.5</version>
+                <configuration>
+                    <attachToMain>false</attachToMain>
+                    <resourceBundles>
+                        <resourceBundle>${project.groupId}:bgp-controller-config:${project.version}</resourceBundle>
+                    </resourceBundles>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>process-test-sources</phase>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
     <scm>
         <connection>scm:git:ssh://git.opendaylight.org:29418/bgpcep.git</connection>
         <developerConnection>scm:git:ssh://git.opendaylight.org:29418/bgpcep.git</developerConnection>
diff --git a/bgp/topology-provider/src/test/java/org/opendaylight/bgpcep/bgp/topology/provider/NetworkTopologyConfigFileProcessorTest.java b/bgp/topology-provider/src/test/java/org/opendaylight/bgpcep/bgp/topology/provider/NetworkTopologyConfigFileProcessorTest.java
new file mode 100644 (file)
index 0000000..480ce42
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  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
+ */
+
+package org.opendaylight.bgpcep.bgp.topology.provider;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import com.google.common.collect.Lists;
+import java.util.List;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyDeployer;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.protocol.bgp.config.loader.impl.AbstractConfigLoader;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
+import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+
+public class NetworkTopologyConfigFileProcessorTest extends AbstractConfigLoader {
+    private final static InstanceIdentifier<Topology> TOPOLOGY_IID = InstanceIdentifier.create(NetworkTopology.class).child(Topology.class);
+    @Mock
+    private BgpTopologyDeployer bgpDeployer;
+    @Mock
+    private DataBroker dataBroker;
+
+    @Override
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        doReturn(TOPOLOGY_IID).when(this.bgpDeployer).getInstanceIdentifier();
+        doNothing().when(this.bgpDeployer).createInstance(any());
+        doReturn(this.dataBroker).when(this.bgpDeployer).getDataBroker();
+
+    }
+
+    @Override
+    protected void registerModules(final ModuleInfoBackedContext moduleInfoBackedContext) throws Exception {
+        moduleInfoBackedContext.registerModuleInfo(BindingReflections.getModuleInfo(NetworkTopology.class));
+        moduleInfoBackedContext.registerModuleInfo(BindingReflections.getModuleInfo(Topology.class));
+    }
+
+    @Override
+    protected List<String> getYangModelsPaths() {
+        final List<String> paths = Lists.newArrayList(
+            "/META-INF/yang/network-topology@2013-10-21.yang",
+            "/META-INF/yang/ietf-inet-types@2013-07-15.yang",
+            "/META-INF/yang/odl-bgp-topology-types.yang",
+            "/META-INF/yang/odl-bgp-topology-config.yang",
+            "/META-INF/yang/bgp-rib.yang",
+            "/META-INF/yang/bgp-multiprotocol.yang",
+            "/META-INF/yang/bgp-types.yang",
+            "/META-INF/yang/network-concepts.yang",
+            "/META-INF/yang/ieee754.yang",
+            "/META-INF/yang/bgp-message.yang",
+            "/META-INF/yang/yang-ext.yang"
+        );
+        return paths;
+    }
+
+    @Test
+    public void configFileTest() throws Exception {
+        assertNotNull(ClassLoader.getSystemClassLoader().getResource("initial/network-topology-config.xml"));
+        verify(this.bgpDeployer, never()).createInstance(any());
+        final NetworkTopologyConfigFileProcessor processor = new NetworkTopologyConfigFileProcessor(this.configLoader, this.bgpDeployer);
+        assertEquals(SchemaPath.create(true, NetworkTopology.QNAME), processor.getSchemaPath());
+
+        verify(this.bgpDeployer, times(3)).createInstance(any());
+        processor.close();
+    }
+}
\ No newline at end of file
diff --git a/bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/AbstractTopologyBuilderModuleTest.java b/bgp/topology-provider/src/test/java/org/opendaylight/controller/config/yang/bgp/topology/provider/AbstractTopologyBuilderModuleTest.java
new file mode 100644 (file)
index 0000000..6346b7f
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. and others.  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
+ */
+
+package org.opendaylight.controller.config.yang.bgp.topology.provider;
+
+import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyDeployer;
+import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyProvider;
+import org.opendaylight.bgpcep.bgp.topology.provider.spi.TopologyReferenceSingletonService;
+import org.opendaylight.bgpcep.topology.TopologyReference;
+import org.opendaylight.controller.config.yang.bgp.rib.impl.AbstractRIBImplModuleTest;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
+import org.opendaylight.yangtools.concepts.AbstractRegistration;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public abstract class AbstractTopologyBuilderModuleTest extends AbstractRIBImplModuleTest {
+    @Override
+    public final void setUp() throws Exception {
+        super.setUp();
+        setupMockService(TopologyReference.class, new TopologyReference() {
+            @Override
+            public InstanceIdentifier<Topology> getInstanceIdentifier() {
+                return null;
+            }
+        });
+        setupMockService(BgpTopologyDeployer.class, new BgpTopologyDeployer() {
+            @Override
+            public AbstractRegistration registerTopologyProvider(final BgpTopologyProvider topologyBuilder) {
+                return null;
+            }
+            @Override
+            public DataBroker getDataBroker() {
+                return null;
+            }
+            @Override
+            public AbstractRegistration registerService(final TopologyReferenceSingletonService topologyProviderService) {
+                return null;
+            }
+
+            @Override
+            public void createInstance(final Topology topology) {
+
+            }
+
+            @Override
+            public void removeInstance(final Topology topology) {
+                return;
+            }
+
+            @Override
+            public InstanceIdentifier<Topology> getInstanceIdentifier() {
+                return null;
+            }
+        });
+    }
+}
index 2ddec8baba2396ceade98e56b3cc03daf8d608e2..e46faa48872cb70f939875f0e091e990b208044c 100644 (file)
@@ -13,68 +13,19 @@ import static org.junit.Assert.fail;
 import java.util.List;
 import javax.management.ObjectName;
 import org.junit.Test;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyDeployer;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyProvider;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.TopologyReferenceSingletonService;
-import org.opendaylight.bgpcep.topology.TopologyReference;
 import org.opendaylight.controller.config.api.ValidationException;
 import org.opendaylight.controller.config.api.jmx.CommitStatus;
 import org.opendaylight.controller.config.spi.ModuleFactory;
 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
 import org.opendaylight.controller.config.yang.bgp.reachability.ipv4.Ipv4ReachabilityTopologyBuilderModuleFactory;
 import org.opendaylight.controller.config.yang.bgp.reachability.ipv4.Ipv4ReachabilityTopologyBuilderModuleMXBean;
-import org.opendaylight.controller.config.yang.bgp.rib.impl.AbstractRIBImplModuleTest;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
-import org.opendaylight.yangtools.concepts.AbstractRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
-public class Ipv4ReachabilityTopologyBuilderModuleTest extends AbstractRIBImplModuleTest {
+public class Ipv4ReachabilityTopologyBuilderModuleTest extends AbstractTopologyBuilderModuleTest {
 
     private static final String FACTORY_NAME = Ipv4ReachabilityTopologyBuilderModuleFactory.NAME;
     private static final String INSTANCE_NAME = "bgp-reachability-ipv4-instance";
 
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        setupMockService(TopologyReference.class, new TopologyReference() {
-            @Override
-            public InstanceIdentifier<Topology> getInstanceIdentifier() {
-                return null;
-            }
-        });
-        setupMockService(BgpTopologyDeployer.class, new BgpTopologyDeployer() {
-            @Override
-            public AbstractRegistration registerTopologyProvider(final BgpTopologyProvider topologyBuilder) {
-                return null;
-            }
-            @Override
-            public DataBroker getDataBroker() {
-                return null;
-            }
-            @Override
-            public AbstractRegistration registerService(final TopologyReferenceSingletonService topologyProviderService) {
-                return null;
-            }
-
-            @Override
-            public void createInstance(final Topology topology) {
-
-            }
-
-            @Override
-            public void removeInstance(final Topology topology) {
-                return;
-            }
-
-            @Override
-            public InstanceIdentifier<Topology> getInstanceIdentifier() {
-                return null;
-            }
-        });
-    }
-
     @Override
     protected List<ModuleFactory> getModuleFactories() {
         final List<ModuleFactory> moduleFactories = super.getModuleFactories();
index f66aab44f69d16ec1bee9d2102cc95d5340c6c6c..c32ac7ae31accd22875356d9a0904b87b9de2cc6 100644 (file)
@@ -13,68 +13,19 @@ import static org.junit.Assert.fail;
 import java.util.List;
 import javax.management.ObjectName;
 import org.junit.Test;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyDeployer;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyProvider;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.TopologyReferenceSingletonService;
-import org.opendaylight.bgpcep.topology.TopologyReference;
 import org.opendaylight.controller.config.api.ValidationException;
 import org.opendaylight.controller.config.api.jmx.CommitStatus;
 import org.opendaylight.controller.config.spi.ModuleFactory;
 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
 import org.opendaylight.controller.config.yang.bgp.reachability.ipv6.Ipv6ReachabilityTopologyBuilderModuleFactory;
 import org.opendaylight.controller.config.yang.bgp.reachability.ipv6.Ipv6ReachabilityTopologyBuilderModuleMXBean;
-import org.opendaylight.controller.config.yang.bgp.rib.impl.AbstractRIBImplModuleTest;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
-import org.opendaylight.yangtools.concepts.AbstractRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
-public class Ipv6ReachabilityTopologyBuilderModuleTest extends AbstractRIBImplModuleTest {
+public class Ipv6ReachabilityTopologyBuilderModuleTest extends AbstractTopologyBuilderModuleTest {
 
     private static final String FACTORY_NAME = Ipv6ReachabilityTopologyBuilderModuleFactory.NAME;
     private static final String INSTANCE_NAME = "bgp-reachability-ipv6-instance";
 
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        setupMockService(TopologyReference.class, new TopologyReference() {
-            @Override
-            public InstanceIdentifier<Topology> getInstanceIdentifier() {
-                return null;
-            }
-        });
-        setupMockService(BgpTopologyDeployer.class, new BgpTopologyDeployer() {
-            @Override
-            public AbstractRegistration registerTopologyProvider(final BgpTopologyProvider topologyBuilder) {
-                return null;
-            }
-            @Override
-            public DataBroker getDataBroker() {
-                return null;
-            }
-            @Override
-            public AbstractRegistration registerService(final TopologyReferenceSingletonService topologyProviderService) {
-                return null;
-            }
-
-            @Override
-            public void createInstance(final Topology topology) {
-
-            }
-
-            @Override
-            public void removeInstance(final Topology topology) {
-                return;
-            }
-
-            @Override
-            public InstanceIdentifier<Topology> getInstanceIdentifier() {
-                return null;
-            }
-        });
-    }
-
     @Override
     protected List<ModuleFactory> getModuleFactories() {
         final List<ModuleFactory> moduleFactories = super.getModuleFactories();
index eb6678a9010f039604c858f78b0d6ed6cbb012ef..47e0a173be026a79e0042354ac8535c3407adf75 100644 (file)
@@ -11,73 +11,19 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.List;
-import java.util.function.Function;
 import javax.management.ObjectName;
 import org.junit.Test;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyDeployer;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyProvider;
-import org.opendaylight.bgpcep.bgp.topology.provider.spi.TopologyReferenceSingletonService;
-import org.opendaylight.bgpcep.topology.TopologyReference;
 import org.opendaylight.controller.config.api.ValidationException;
 import org.opendaylight.controller.config.api.jmx.CommitStatus;
 import org.opendaylight.controller.config.spi.ModuleFactory;
 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
-import org.opendaylight.controller.config.yang.bgp.rib.impl.AbstractRIBImplModuleTest;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
-import org.opendaylight.yangtools.concepts.AbstractRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
-public class LinkstateTopologyBuilderModuleTest extends AbstractRIBImplModuleTest {
+public class LinkstateTopologyBuilderModuleTest extends AbstractTopologyBuilderModuleTest {
 
     private static final String FACTORY_NAME = LinkstateTopologyBuilderModuleFactory.NAME;
     private static final String INSTANCE_NAME = "bgp-linkstate-topology-instance";
 
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        setupMockService(TopologyReference.class, new TopologyReference() {
-            @Override
-            public InstanceIdentifier<Topology> getInstanceIdentifier() {
-                return null;
-            }
-        });
-        setupMockService(BgpTopologyDeployer.class, new BgpTopologyDeployer() {
-            @Override
-            public AbstractRegistration registerTopologyProvider(final BgpTopologyProvider topologyBuilder) {
-                return null;
-            }
-            @Override
-            public DataBroker getDataBroker() {
-                return null;
-            }
-            @Override
-            public AbstractRegistration registerService(final TopologyReferenceSingletonService topologyProviderService) {
-                return null;
-            }
-
-            @Override
-            public void createInstance(final Topology topology) {
-
-            }
-
-            void createInstance(final Topology topology, final Function<Topology, Void> writeFunction) {
-                return;
-            }
-
-            @Override
-            public void removeInstance(final Topology topology) {
-                return;
-            }
-
-            @Override
-            public InstanceIdentifier<Topology> getInstanceIdentifier() {
-                return null;
-            }
-        });
-    }
-
     @Override
     protected List<ModuleFactory> getModuleFactories() {
         final List<ModuleFactory> moduleFactories = super.getModuleFactories();