2 * Copyright (c) 2014 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
9 package org.opendaylight.controller.remote.rpc;
11 import static org.mockito.Mockito.mock;
12 import static org.mockito.Mockito.when;
14 import akka.actor.ActorRef;
15 import akka.actor.ActorSystem;
16 import akka.testkit.JavaTestKit;
17 import com.typesafe.config.Config;
18 import java.util.concurrent.TimeUnit;
19 import org.junit.AfterClass;
20 import org.junit.Assert;
21 import org.junit.BeforeClass;
22 import org.junit.Test;
23 import org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService;
24 import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
25 import org.opendaylight.controller.sal.core.api.Broker;
26 import scala.concurrent.Await;
27 import scala.concurrent.duration.Duration;
29 public class RemoteRpcProviderTest {
30 static ActorSystem system;
31 static RemoteRpcProviderConfig moduleConfig;
34 public static void setup() throws InterruptedException {
35 moduleConfig = new RemoteRpcProviderConfig.Builder("odl-cluster-rpc").build();
36 final Config config = moduleConfig.get();
37 system = ActorSystem.create("odl-cluster-rpc", config);
42 public static void teardown() {
43 JavaTestKit.shutdownActorSystem(system);
48 public void testRemoteRpcProvider() throws Exception {
49 try (final RemoteRpcProvider rpcProvider = new RemoteRpcProvider(system, mock(DOMRpcProviderService.class),
50 new RemoteRpcProviderConfig(system.settings().config()))) {
51 final Broker.ProviderSession session = mock(Broker.ProviderSession.class);
52 when(session.getService(DOMRpcService.class)).thenReturn(mock(DOMRpcService.class));
54 rpcProvider.onSessionInitiated(session);
56 final ActorRef actorRef = Await.result(
57 system.actorSelection(moduleConfig.getRpcManagerPath()).resolveOne(
58 Duration.create(1, TimeUnit.SECONDS)), Duration.create(2, TimeUnit.SECONDS));
60 Assert.assertTrue(actorRef.path().toString().contains(moduleConfig.getRpcManagerPath()));