X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fnetconf-console%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fconsole%2Fimpl%2FNetconfCommandsImplTest.java;h=576408b371e6a8d95e9a876a365eb7f7b20a4c64;hb=f4b565fa5729237f88466358fb32bc558009a77a;hp=6fdf0a6c12a0407518a9fca579de3c8f862c9254;hpb=2a7540bfdf252110cfc4ad6a3e4f162d8d55ce63;p=netconf.git diff --git a/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java b/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java index 6fdf0a6c12..576408b371 100644 --- a/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java +++ b/netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java @@ -13,34 +13,38 @@ import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.mock; import com.google.common.collect.ImmutableList; -import java.io.InputStream; +import com.google.common.util.concurrent.MoreExecutors; import java.util.ArrayList; -import java.util.Arrays; import java.util.EnumMap; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import javassist.ClassPool; import org.junit.Before; import org.junit.Test; -import org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker; import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.MountPointService; import org.opendaylight.controller.md.sal.binding.api.WriteTransaction; import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter; import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; +import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; +import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker; import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStoreFactory; import org.opendaylight.controller.sal.core.api.model.SchemaService; import org.opendaylight.controller.sal.core.spi.data.DOMStore; +import org.opendaylight.mdsal.binding.dom.codec.gen.impl.DataObjectSerializerGenerator; +import org.opendaylight.mdsal.binding.dom.codec.gen.impl.StreamWriterGenerator; +import org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry; +import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy; +import org.opendaylight.mdsal.binding.generator.impl.ModuleInfoBackedContext; +import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext; +import org.opendaylight.mdsal.binding.generator.util.JavassistUtils; import org.opendaylight.netconf.console.utils.NetconfConsoleConstants; import org.opendaylight.netconf.console.utils.NetconfConsoleUtils; import org.opendaylight.netconf.console.utils.NetconfIidFactory; @@ -63,21 +67,11 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.binding.data.codec.gen.impl.DataObjectSerializerGenerator; -import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator; -import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry; import org.opendaylight.yangtools.concepts.ListenerRegistration; -import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy; -import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext; -import org.opendaylight.yangtools.sal.binding.generator.util.BindingRuntimeContext; -import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils; -import org.opendaylight.yangtools.util.concurrent.SpecialExecutors; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; -import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; public class NetconfCommandsImplTest { @@ -93,8 +87,10 @@ public class NetconfCommandsImplTest { private NetconfCommandsImpl netconfCommands; @Before - public void setUp() throws TransactionCommitFailedException, TimeoutException, InterruptedException { - schemaContext = parseYangStreams(getYangSchemas()); + public void setUp() throws Exception { + schemaContext = YangParserTestUtils.parseYangResources(NetconfCommandsImplTest.class, + "/schemas/network-topology@2013-10-21.yang", "/schemas/ietf-inet-types@2013-07-15.yang", + "/schemas/yang-ext.yang", "/schemas/netconf-node-topology.yang"); schemaContext.getModules(); final SchemaService schemaService = createSchemaService(); @@ -105,35 +101,34 @@ public class NetconfCommandsImplTest { datastores.put(LogicalDatastoreType.CONFIGURATION, configStore); datastores.put(LogicalDatastoreType.OPERATIONAL, operStore); - final ExecutorService listenableFutureExecutor = SpecialExecutors.newBlockingBoundedCachedThreadPool( - 16, 16, "CommitFutures"); - - final ConcurrentDOMDataBroker cDOMDataBroker = new ConcurrentDOMDataBroker(datastores, listenableFutureExecutor); + final DOMDataBroker domDataBroker = + new SerializedDOMDataBroker(datastores, MoreExecutors.newDirectExecutorService()); final ClassPool pool = ClassPool.getDefault(); final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(pool)); final BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(generator); final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create(); - codecRegistry.onBindingRuntimeContextUpdated(BindingRuntimeContext.create(moduleInfoBackedContext, schemaContext)); + codecRegistry + .onBindingRuntimeContextUpdated(BindingRuntimeContext.create(moduleInfoBackedContext, schemaContext)); final GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(); - final BindingToNormalizedNodeCodec bindingToNormalized = new BindingToNormalizedNodeCodec(loading, codecRegistry); + final BindingToNormalizedNodeCodec bindingToNormalized = + new BindingToNormalizedNodeCodec(loading, codecRegistry); bindingToNormalized.onGlobalContextUpdated(schemaContext); - dataBroker = new BindingDOMDataBrokerAdapter(cDOMDataBroker, bindingToNormalized); + dataBroker = new BindingDOMDataBrokerAdapter(domDataBroker, bindingToNormalized); - final MountPointService mountPointService = mock(MountPointService.class); - netconfCommands = new NetconfCommandsImpl(dataBroker, mountPointService); + netconfCommands = new NetconfCommandsImpl(dataBroker); } @Test public void testListDevice() throws TimeoutException, TransactionCommitFailedException { createTopology(LogicalDatastoreType.OPERATIONAL); - final Map map = netconfCommands.listDevices(); + final Map map = netconfCommands.listDevices(); map.containsKey(NetconfConsoleConstants.NETCONF_ID); assertTrue(map.containsKey(NODE_ID)); - final Map mapNode = (Map) map.get(NODE_ID); + final Map mapNode = (Map) map.get(NODE_ID); assertBaseNodeAttributes(mapNode); } @@ -141,27 +136,28 @@ public class NetconfCommandsImplTest { public void testShowDevice() throws TimeoutException, TransactionCommitFailedException { createTopology(LogicalDatastoreType.OPERATIONAL); - final Map mapCorrect = netconfCommands.showDevice(IP, String.valueOf(PORT)); + final Map mapCorrect = netconfCommands.showDevice(IP, String.valueOf(PORT)); mapCorrect.containsKey(NetconfConsoleConstants.NETCONF_ID); assertTrue(mapCorrect.containsKey(NODE_ID)); - assertBaseNodeAttributesImmutableList((Map) mapCorrect.get(NODE_ID)); + assertBaseNodeAttributesImmutableList((Map) mapCorrect.get(NODE_ID)); - final Map mapWrongPort = netconfCommands.showDevice(IP, "1"); + final Map mapWrongPort = netconfCommands.showDevice(IP, "1"); assertFalse(mapWrongPort.containsKey(NODE_ID)); - final Map mapWrongIP = netconfCommands.showDevice("1.1.1.1", String.valueOf(PORT)); + final Map mapWrongIP = netconfCommands.showDevice("1.1.1.1", String.valueOf(PORT)); assertFalse(mapWrongIP.containsKey(NODE_ID)); - final Map mapId = netconfCommands.showDevice(NODE_ID); + final Map mapId = netconfCommands.showDevice(NODE_ID); assertTrue(mapId.containsKey(NODE_ID)); assertBaseNodeAttributesImmutableList((Map) mapId.get(NODE_ID)); } @Test - public void testConnectDisconnectDevice() throws InterruptedException, TimeoutException, TransactionCommitFailedException { - final NetconfNode netconfNode = new NetconfNodeBuilder().setPort(new PortNumber(7777)). - setHost(HostBuilder.getDefaultInstance("10.10.1.1")).build(); + public void testConnectDisconnectDevice() + throws InterruptedException, TimeoutException, TransactionCommitFailedException { + final NetconfNode netconfNode = new NetconfNodeBuilder() + .setPort(new PortNumber(7777)).setHost(HostBuilder.getDefaultInstance("10.10.1.1")).build(); createTopology(LogicalDatastoreType.CONFIGURATION); netconfCommands.connectDevice(netconfNode, "netconf-ID"); @@ -231,22 +227,23 @@ public class NetconfCommandsImplTest { assertEquals(1, nodes.size()); } - private void createTopology(LogicalDatastoreType dataStoreType) throws TransactionCommitFailedException, TimeoutException { + private void createTopology(final LogicalDatastoreType dataStoreType) + throws TransactionCommitFailedException, TimeoutException { final List nodes = new ArrayList<>(); final Node node = getNetconfNode(NODE_ID, IP, PORT, CONN_STATUS, CAP_PREFIX); nodes.add(node); - final Topology topology = new TopologyBuilder(). - setKey(new TopologyKey(new TopologyId(TopologyNetconf.QNAME.getLocalName()))). - setTopologyId(new TopologyId(TopologyNetconf.QNAME.getLocalName())).setNode(nodes).build(); + final Topology topology = new TopologyBuilder() + .setKey(new TopologyKey(new TopologyId(TopologyNetconf.QNAME.getLocalName()))) + .setTopologyId(new TopologyId(TopologyNetconf.QNAME.getLocalName())).setNode(nodes).build(); final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction(); writeTransaction.put(dataStoreType, NetconfIidFactory.NETCONF_TOPOLOGY_IID, topology); writeTransaction.submit().checkedGet(2, TimeUnit.SECONDS); } - private Node getNetconfNode(String nodeIdent, String ip, int portNumber, NetconfNodeConnectionStatus.ConnectionStatus cs, - String notificationCapabilityPrefix) { + private static Node getNetconfNode(final String nodeIdent, final String ip, final int portNumber, + final NetconfNodeConnectionStatus.ConnectionStatus cs, final String notificationCapabilityPrefix) { final Host host = HostBuilder.getDefaultInstance(ip); final PortNumber port = new PortNumber(portNumber); @@ -255,10 +252,11 @@ public class NetconfCommandsImplTest { avCapList.add(new AvailableCapabilityBuilder() .setCapabilityOrigin(AvailableCapability.CapabilityOrigin.UserDefined) .setCapability(notificationCapabilityPrefix + "_availableCapabilityString1").build()); - final AvailableCapabilities avCaps = new AvailableCapabilitiesBuilder().setAvailableCapability(avCapList).build(); + final AvailableCapabilities avCaps = + new AvailableCapabilitiesBuilder().setAvailableCapability(avCapList).build(); - final NetconfNode nn = new NetconfNodeBuilder().setConnectionStatus(cs).setHost(host).setPort(port). - setAvailableCapabilities(avCaps).build(); + final NetconfNode nn = new NetconfNodeBuilder().setConnectionStatus(cs).setHost(host).setPort(port) + .setAvailableCapabilities(avCaps).build(); final NodeId nodeId = new NodeId(nodeIdent); final NodeKey nk = new NodeKey(nodeId); final NodeBuilder nb = new NodeBuilder(); @@ -268,8 +266,7 @@ public class NetconfCommandsImplTest { return nb.build(); } - private void assertBaseNodeAttributes(Map mapNode) { - + private static void assertBaseNodeAttributes(final Map mapNode) { assertTrue(mapNode.containsKey(NetconfConsoleConstants.NETCONF_ID)); assertTrue(mapNode.containsKey(NetconfConsoleConstants.NETCONF_IP)); assertTrue(mapNode.containsKey(NetconfConsoleConstants.NETCONF_PORT)); @@ -281,7 +278,7 @@ public class NetconfCommandsImplTest { assertEquals(CONN_STATUS.name().toLowerCase(), mapNode.get(NetconfConsoleConstants.STATUS)); } - private void assertBaseNodeAttributesImmutableList(Map mapNode) { + private static void assertBaseNodeAttributesImmutableList(final Map mapNode) { assertTrue(mapNode.containsKey(NetconfConsoleConstants.NETCONF_ID)); assertTrue(mapNode.containsKey(NetconfConsoleConstants.NETCONF_IP)); assertTrue(mapNode.containsKey(NetconfConsoleConstants.NETCONF_PORT)); @@ -293,40 +290,15 @@ public class NetconfCommandsImplTest { assertEquals(ImmutableList.of(CONN_STATUS.name()), mapNode.get(NetconfConsoleConstants.STATUS)); } - private List getYangSchemas() { - final List schemaPaths = Arrays.asList("/schemas/network-topology@2013-10-21.yang", - "/schemas/ietf-inet-types@2013-07-15.yang", "/schemas/yang-ext.yang", - "/schemas/netconf-node-topology.yang"); - - final List schemas = new ArrayList<>(); - for (String schemaPath : schemaPaths) { - final InputStream resourceAsStream = getClass().getResourceAsStream(schemaPath); - schemas.add(resourceAsStream); - } - return schemas; - } - - private static SchemaContext parseYangStreams(final List streams) { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR - .newBuild(); - final SchemaContext schemaContext; - try { - schemaContext = reactor.buildEffective(streams); - } catch (ReactorException e) { - throw new RuntimeException("Unable to build schema context from " + streams, e); - } - return schemaContext; - } - private SchemaService createSchemaService() { return new SchemaService() { @Override - public void addModule(Module module) { + public void addModule(final Module module) { } @Override - public void removeModule(Module module) { + public void removeModule(final Module module) { } @@ -341,7 +313,8 @@ public class NetconfCommandsImplTest { } @Override - public ListenerRegistration registerSchemaContextListener(final SchemaContextListener listener) { + public ListenerRegistration registerSchemaContextListener( + final SchemaContextListener listener) { listener.onGlobalContextUpdated(getGlobalContext()); return new ListenerRegistration() { @Override