Fix resource leaks in test cases
[controller.git] / opendaylight / md-sal / sal-remoterpc-connector / src / test / java / org / opendaylight / controller / remote / rpc / RemoteRpcProviderTest.java
index 8b4599ca8ceac01684376b63be3dded36e354e2b..e1f93f8b390b6e9a3f12d773553ec8296100e13f 100644 (file)
 package org.opendaylight.controller.remote.rpc;
 
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
 import akka.actor.ActorRef;
 import akka.actor.ActorSystem;
 import akka.testkit.JavaTestKit;
 import com.typesafe.config.Config;
+import java.util.concurrent.TimeUnit;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService;
+import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
 import org.opendaylight.controller.sal.core.api.Broker;
-import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry;
 import org.opendaylight.controller.sal.core.api.model.SchemaService;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import scala.concurrent.Await;
 import scala.concurrent.duration.Duration;
 
-import java.util.concurrent.TimeUnit;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 public class RemoteRpcProviderTest {
 
   static ActorSystem system;
@@ -38,7 +38,7 @@ public class RemoteRpcProviderTest {
   @BeforeClass
   public static void setup() throws InterruptedException {
     moduleConfig = new RemoteRpcProviderConfig.Builder("odl-cluster-rpc").build();
-    Config config = moduleConfig.get();
+    final Config config = moduleConfig.get();
     system = ActorSystem.create("odl-cluster-rpc", config);
 
   }
@@ -49,21 +49,23 @@ public class RemoteRpcProviderTest {
     system = null;
   }
 
-  @Test
-  public void testRemoteRpcProvider() throws Exception {
-    RemoteRpcProvider rpcProvider = new RemoteRpcProvider(system, mock(RpcProvisionRegistry.class));
-    Broker.ProviderSession session = mock(Broker.ProviderSession.class);
-    SchemaService schemaService = mock(SchemaService.class);
-    when(schemaService.getGlobalContext()). thenReturn(mock(SchemaContext.class));
-    when(session.getService(SchemaService.class)).thenReturn(schemaService);
+    @Test
+    public void testRemoteRpcProvider() throws Exception {
+        try (final RemoteRpcProvider rpcProvider = new RemoteRpcProvider(system, mock(DOMRpcProviderService.class),
+                new RemoteRpcProviderConfig(system.settings().config()))) {
+            final Broker.ProviderSession session = mock(Broker.ProviderSession.class);
+            final SchemaService schemaService = mock(SchemaService.class);
+            when(schemaService.getGlobalContext()).thenReturn(mock(SchemaContext.class));
+            when(session.getService(SchemaService.class)).thenReturn(schemaService);
+            when(session.getService(DOMRpcService.class)).thenReturn(mock(DOMRpcService.class));
 
-    rpcProvider.onSessionInitiated(session);
+            rpcProvider.onSessionInitiated(session);
 
-    ActorRef actorRef = Await.result(
-            system.actorSelection(
-                    moduleConfig.getRpcManagerPath()).resolveOne(Duration.create(1, TimeUnit.SECONDS)),
-                                                                 Duration.create(2, TimeUnit.SECONDS));
+            final ActorRef actorRef = Await.result(
+                    system.actorSelection(moduleConfig.getRpcManagerPath()).resolveOne(
+                            Duration.create(1, TimeUnit.SECONDS)), Duration.create(2, TimeUnit.SECONDS));
 
-    Assert.assertTrue(actorRef.path().toString().contains(moduleConfig.getRpcManagerPath()));
-  }
+            Assert.assertTrue(actorRef.path().toString().contains(moduleConfig.getRpcManagerPath()));
+        }
+    }
 }