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