More SchemaContext reuse 79/83979/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Aug 2019 10:41:47 +0000 (12:41 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Aug 2019 19:27:56 +0000 (21:27 +0200)
This reuses SchemaContext across test invocations, speeding up
testing a bit.

Change-Id: I036fa6ce065b6a895b5926e10123af038ae5593e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceDataBrokerTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java

index 60a7b3b711bf9d99cfe1bf67730116c992b1f3a6..1b68063d23922c8a2af08019b9332cc189dedcf7 100644 (file)
@@ -17,8 +17,10 @@ import static org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTr
 import com.google.common.collect.Lists;
 import java.net.InetSocketAddress;
 import java.util.Arrays;
+import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
@@ -44,21 +46,31 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
 public class NetconfDeviceDataBrokerTest {
+    private static SchemaContext SCHEMA_CONTEXT;
 
     @Mock
     private DOMRpcService rpcService;
-    private SchemaContext schemaContext;
     private NetconfDeviceDataBroker dataBroker;
 
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
+    @BeforeClass
+    public static void beforeClass() {
         final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create();
         moduleInfoBackedContext.addModuleInfos(
                 Lists.newArrayList($YangModuleInfoImpl.getInstance(),
                         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns
                                 .netconf.base._1._0.rev110601.$YangModuleInfoImpl.getInstance()));
-        schemaContext = moduleInfoBackedContext.tryToCreateSchemaContext().get();
+        SCHEMA_CONTEXT = moduleInfoBackedContext.tryToCreateSchemaContext().get();
+    }
+
+    @AfterClass
+    public static void afterClass() {
+        SCHEMA_CONTEXT = null;
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
         DOMRpcResult result = new DefaultDOMRpcResult();
         when(rpcService.invokeRpc(any(SchemaPath.class), any(NormalizedNode.class)))
                 .thenReturn(FluentFutures.immediateFluentFuture(result));
@@ -107,7 +119,7 @@ public class NetconfDeviceDataBrokerTest {
         NetconfSessionPreferences prefs = NetconfSessionPreferences.fromStrings(Arrays.asList(caps));
         final RemoteDeviceId id =
                 new RemoteDeviceId("device-1", InetSocketAddress.createUnresolved("localhost", 17830));
-        return new NetconfDeviceDataBroker(id, schemaContext, rpcService, prefs);
+        return new NetconfDeviceDataBroker(id, SCHEMA_CONTEXT, rpcService, prefs);
     }
 
 }
index 1882e217bbf9f6920bdc61ae72b2cce157aab907..06dbca5dd93fd20a8cd13a78a8661cadd0ce59cc 100644 (file)
@@ -16,8 +16,10 @@ import com.google.common.util.concurrent.Futures;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Set;
+import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
@@ -47,6 +49,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.w3c.dom.Node;
 
 public class NetconfDeviceRpcTest {
+    private static SchemaContext SCHEMA_CONTEXT;
 
     @Mock
     private DOMRpcAvailabilityListener listener;
@@ -56,13 +59,23 @@ public class NetconfDeviceRpcTest {
     private NetconfDeviceRpc rpc;
     private SchemaPath path;
     private DOMRpcResult expectedReply;
-    private SchemaContext schema;
+
+    @BeforeClass
+    public static void beforeClass() {
+        final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create();
+        moduleInfoBackedContext.addModuleInfos(Collections.singleton($YangModuleInfoImpl.getInstance()));
+        SCHEMA_CONTEXT = moduleInfoBackedContext.tryToCreateSchemaContext().get();
+    }
+
+    @AfterClass
+    public static void afterClass() {
+        SCHEMA_CONTEXT = null;
+    }
 
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        schema = getSchema();
-        NetconfMessageTransformer transformer = new NetconfMessageTransformer(schema, true);
+        NetconfMessageTransformer transformer = new NetconfMessageTransformer(SCHEMA_CONTEXT, true);
         final NetconfMessage reply = new NetconfMessage(XmlUtil.readXmlToDocument(
                 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n"
                         + "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"101\">\n"
@@ -72,7 +85,7 @@ public class NetconfDeviceRpcTest {
         RpcResult<NetconfMessage> result = RpcResultBuilder.success(reply).build();
         doReturn(Futures.immediateFuture(result))
                 .when(communicator).sendRequest(any(NetconfMessage.class), any(QName.class));
-        rpc = new NetconfDeviceRpc(schema, communicator, transformer);
+        rpc = new NetconfDeviceRpc(SCHEMA_CONTEXT, communicator, transformer);
 
         path = SchemaPath
                 .create(true, QName.create("urn:ietf:params:xml:ns:netconf:base:1.0", "2011-06-01", "get-config"));
@@ -103,7 +116,7 @@ public class NetconfDeviceRpcTest {
 
         verify(listener).onRpcAvailable(argument.capture());
         final Collection<DOMRpcIdentifier> argValue = argument.getValue();
-        final Set<RpcDefinition> operations = schema.getOperations();
+        final Set<RpcDefinition> operations = SCHEMA_CONTEXT.getOperations();
         Assert.assertEquals(argValue.size(), operations.size());
         for (RpcDefinition operation : operations) {
             final DOMRpcIdentifier domRpcIdentifier = DOMRpcIdentifier.create(operation.getPath());
@@ -116,10 +129,4 @@ public class NetconfDeviceRpcTest {
         return Builders.containerBuilder().withNodeIdentifier(
                 new YangInstanceIdentifier.NodeIdentifier(QName.create(namespace, date, localName))).build();
     }
-
-    private static SchemaContext getSchema() {
-        final ModuleInfoBackedContext moduleInfoBackedContext = ModuleInfoBackedContext.create();
-        moduleInfoBackedContext.addModuleInfos(Collections.singleton($YangModuleInfoImpl.getInstance()));
-        return moduleInfoBackedContext.tryToCreateSchemaContext().get();
-    }
 }