X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Futils%2FActorContextTest.java;h=39d337e91b6005dc938e98232bbf105fc13ce220;hp=fa6d0b060f222f28ec723f1b4bc52b2f1ade3aa4;hb=ec7cac6937c6beacf4d6dd9b44bb998d7b0068d4;hpb=7ca766e911670b348d68c191ba16a903f1bdc245 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorContextTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorContextTest.java index fa6d0b060f..39d337e91b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorContextTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorContextTest.java @@ -26,40 +26,6 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; public class ActorContextTest extends AbstractActorTest{ - @Test - public void testResolvePathForRemoteActor(){ - ActorContext actorContext = - new ActorContext(mock(ActorSystem.class), mock(ActorRef.class),mock( - ClusterWrapper.class), - mock(Configuration.class)); - - String actual = actorContext.resolvePath( - "akka.tcp://system@127.0.0.1:2550/user/shardmanager/shard", - "akka://system/user/shardmanager/shard/transaction"); - - String expected = "akka.tcp://system@127.0.0.1:2550/user/shardmanager/shard/transaction"; - - assertEquals(expected, actual); - } - - @Test - public void testResolvePathForLocalActor(){ - ActorContext actorContext = - new ActorContext(getSystem(), mock(ActorRef.class), mock(ClusterWrapper.class), - mock(Configuration.class)); - - String actual = actorContext.resolvePath( - "akka://system/user/shardmanager/shard", - "akka://system/user/shardmanager/shard/transaction"); - - String expected = "akka://system/user/shardmanager/shard/transaction"; - - assertEquals(expected, actual); - - System.out.println(actorContext - .actorFor("akka://system/user/shardmanager/shard/transaction")); - } - private static class MockShardManager extends UntypedActor { @@ -133,23 +99,15 @@ public class ActorContextTest extends AbstractActorTest{ @Test public void testFindLocalShardWithShardNotFound(){ new JavaTestKit(getSystem()) {{ + ActorRef shardManagerActorRef = getSystem() + .actorOf(MockShardManager.props(false, null)); - new Within(duration("1 seconds")) { - @Override - protected void run() { - - ActorRef shardManagerActorRef = getSystem() - .actorOf(MockShardManager.props(false, null)); - - ActorContext actorContext = - new ActorContext(getSystem(), shardManagerActorRef , mock(ClusterWrapper.class), + ActorContext actorContext = + new ActorContext(getSystem(), shardManagerActorRef , mock(ClusterWrapper.class), mock(Configuration.class)); - Optional out = actorContext.findLocalShard("default"); - assertTrue(!out.isPresent()); - expectNoMsg(); - } - }; + Optional out = actorContext.findLocalShard("default"); + assertTrue(!out.isPresent()); }}; } @@ -157,63 +115,121 @@ public class ActorContextTest extends AbstractActorTest{ @Test public void testExecuteRemoteOperation() { new JavaTestKit(getSystem()) {{ + ActorRef shardActorRef = getSystem().actorOf(Props.create(EchoActor.class)); - new Within(duration("3 seconds")) { - @Override - protected void run() { - - ActorRef shardActorRef = getSystem().actorOf(Props.create(EchoActor.class)); + ActorRef shardManagerActorRef = getSystem() + .actorOf(MockShardManager.props(true, shardActorRef)); - ActorRef shardManagerActorRef = getSystem() - .actorOf(MockShardManager.props(true, shardActorRef)); - - ActorContext actorContext = - new ActorContext(getSystem(), shardManagerActorRef , mock(ClusterWrapper.class), + ActorContext actorContext = + new ActorContext(getSystem(), shardManagerActorRef , mock(ClusterWrapper.class), mock(Configuration.class)); - ActorSelection actor = actorContext.actorSelection(shardActorRef.path()); - - Object out = actorContext.executeOperation(actor, "hello"); + ActorSelection actor = actorContext.actorSelection(shardActorRef.path()); - assertEquals("hello", out); + Object out = actorContext.executeOperation(actor, "hello"); - expectNoMsg(); - } - }; + assertEquals("hello", out); }}; } @Test public void testExecuteRemoteOperationAsync() { new JavaTestKit(getSystem()) {{ + ActorRef shardActorRef = getSystem().actorOf(Props.create(EchoActor.class)); - new Within(duration("3 seconds")) { - @Override - protected void run() { + ActorRef shardManagerActorRef = getSystem() + .actorOf(MockShardManager.props(true, shardActorRef)); - ActorRef shardActorRef = getSystem().actorOf(Props.create(EchoActor.class)); + ActorContext actorContext = + new ActorContext(getSystem(), shardManagerActorRef , mock(ClusterWrapper.class), + mock(Configuration.class)); - ActorRef shardManagerActorRef = getSystem() - .actorOf(MockShardManager.props(true, shardActorRef)); + ActorSelection actor = actorContext.actorSelection(shardActorRef.path()); - ActorContext actorContext = - new ActorContext(getSystem(), shardManagerActorRef , mock(ClusterWrapper.class), - mock(Configuration.class)); + Future future = actorContext.executeOperationAsync(actor, "hello"); - ActorSelection actor = actorContext.actorSelection(shardActorRef.path()); + try { + Object result = Await.result(future, Duration.create(3, TimeUnit.SECONDS)); + assertEquals("Result", "hello", result); + } catch(Exception e) { + throw new AssertionError(e); + } + }}; + } - Future future = actorContext.executeOperationAsync(actor, "hello"); + @Test + public void testIsLocalPath() { + MockClusterWrapper clusterWrapper = new MockClusterWrapper(); + ActorContext actorContext = + new ActorContext(getSystem(), null, clusterWrapper, mock(Configuration.class)); - try { - Object result = Await.result(future, Duration.create(3, TimeUnit.SECONDS)); - assertEquals("Result", "hello", result); - } catch(Exception e) { - throw new AssertionError(e); - } + clusterWrapper.setSelfAddress(""); + assertEquals(false, actorContext.isLocalPath(null)); + assertEquals(false, actorContext.isLocalPath("")); - expectNoMsg(); - } - }; - }}; + clusterWrapper.setSelfAddress(null); + assertEquals(false, actorContext.isLocalPath("")); + + clusterWrapper.setSelfAddress("akka://test/user/$b"); + assertEquals(false, actorContext.isLocalPath("akka://test/user/$a")); + + clusterWrapper.setSelfAddress("akka.tcp://system@127.0.0.1:2550/"); + assertEquals(true, actorContext.isLocalPath("akka.tcp://system@127.0.0.1:2550/")); + + clusterWrapper.setSelfAddress("akka.tcp://system@127.0.0.1:2550"); + assertEquals(false, actorContext.isLocalPath("akka.tcp://system@127.0.0.1:2550/")); + + clusterWrapper.setSelfAddress("akka.tcp://system@128.0.0.1:2550/"); + assertEquals(false, actorContext.isLocalPath("akka.tcp://system@127.0.0.1:2550/")); + + clusterWrapper.setSelfAddress("akka.tcp://system@127.0.0.1:2551/"); + assertEquals(false, actorContext.isLocalPath("akka.tcp://system@127.0.0.1:2550/")); } + + @Test + public void testResolvePathForRemoteActor() { + ActorContext actorContext = + new ActorContext(mock(ActorSystem.class), mock(ActorRef.class), mock( + ClusterWrapper.class), + mock(Configuration.class)); + + String actual = actorContext.resolvePath( + "akka.tcp://system@127.0.0.1:2550/user/shardmanager/shard", + "akka://system/user/shardmanager/shard/transaction"); + + String expected = "akka.tcp://system@127.0.0.1:2550/user/shardmanager/shard/transaction"; + + assertEquals(expected, actual); + } + + @Test + public void testResolvePathForLocalActor() { + ActorContext actorContext = + new ActorContext(getSystem(), mock(ActorRef.class), mock(ClusterWrapper.class), + mock(Configuration.class)); + + String actual = actorContext.resolvePath( + "akka://system/user/shardmanager/shard", + "akka://system/user/shardmanager/shard/transaction"); + + String expected = "akka://system/user/shardmanager/shard/transaction"; + + assertEquals(expected, actual); + } + + @Test + public void testResolvePathForRemoteActorWithProperRemoteAddress() { + ActorContext actorContext = + new ActorContext(getSystem(), mock(ActorRef.class), mock(ClusterWrapper.class), + mock(Configuration.class)); + + String actual = actorContext.resolvePath( + "akka.tcp://system@7.0.0.1:2550/user/shardmanager/shard", + "akka.tcp://system@7.0.0.1:2550/user/shardmanager/shard/transaction"); + + String expected = "akka.tcp://system@7.0.0.1:2550/user/shardmanager/shard/transaction"; + + assertEquals(expected, actual); + } + }