2 * Copyright (c) 2014, 2017 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.remote.rpc;
10 import static org.mockito.Mockito.mock;
12 import akka.actor.ActorRef;
13 import akka.actor.ActorSystem;
14 import akka.testkit.javadsl.TestKit;
15 import com.typesafe.config.Config;
16 import com.typesafe.config.ConfigFactory;
17 import java.util.concurrent.TimeUnit;
18 import org.junit.AfterClass;
19 import org.junit.Assert;
20 import org.junit.BeforeClass;
21 import org.junit.Test;
22 import org.opendaylight.mdsal.dom.api.DOMRpcProviderService;
23 import org.opendaylight.mdsal.dom.api.DOMRpcService;
24 import scala.concurrent.Await;
25 import scala.concurrent.duration.FiniteDuration;
27 public class RemoteRpcProviderTest {
28 static ActorSystem system;
29 static RemoteRpcProviderConfig moduleConfig;
32 public static void setup() {
33 moduleConfig = new RemoteRpcProviderConfig.Builder("odl-cluster-rpc")
34 .withConfigReader(ConfigFactory::load).build();
35 final Config config = moduleConfig.get();
36 system = ActorSystem.create("odl-cluster-rpc", config);
41 public static void teardown() {
42 TestKit.shutdownActorSystem(system);
47 public void testRemoteRpcProvider() throws Exception {
48 try (RemoteRpcProvider rpcProvider = new RemoteRpcProvider(system, mock(DOMRpcProviderService.class),
49 mock(DOMRpcService.class), new RemoteRpcProviderConfig(system.settings().config()))) {
53 final ActorRef actorRef = Await.result(
54 system.actorSelection(moduleConfig.getRpcManagerPath()).resolveOne(
55 FiniteDuration.create(1, TimeUnit.SECONDS)), FiniteDuration.create(2, TimeUnit.SECONDS));
57 Assert.assertTrue(actorRef.path().toString().contains(moduleConfig.getRpcManagerPath()));