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%2FShardTest.java;h=4466e50f96f53651be61a696deda5249692196e9;hp=431a266b148478a49766bd8f0cc173bc7b2e4062;hb=be324821e7ef3dba64375e74b920b7ab513c42e3;hpb=ee146664ac8ae45439c14a84fe769633c3ebf847 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java index 431a266b14..4466e50f96 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java @@ -4,8 +4,10 @@ import akka.actor.ActorRef; import akka.actor.Props; import akka.event.Logging; import akka.testkit.JavaTestKit; -import junit.framework.Assert; + +import org.junit.Assert; import org.junit.Test; +import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier; import org.opendaylight.controller.cluster.datastore.messages.CreateTransaction; import org.opendaylight.controller.cluster.datastore.messages.CreateTransactionChain; import org.opendaylight.controller.cluster.datastore.messages.CreateTransactionChainReply; @@ -27,15 +29,22 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; -import static junit.framework.Assert.assertFalse; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class ShardTest extends AbstractActorTest { + + private static final DatastoreContext DATA_STORE_CONTEXT = new DatastoreContext(); + @Test public void testOnReceiveCreateTransactionChain() throws Exception { new JavaTestKit(getSystem()) {{ - final Props props = Shard.props("config", Collections.EMPTY_MAP); + final ShardIdentifier identifier = + ShardIdentifier.builder().memberName("member-1") + .shardName("inventory").type("config").build(); + + final Props props = Shard.props(identifier, Collections.EMPTY_MAP, DATA_STORE_CONTEXT); final ActorRef subject = getSystem().actorOf(props, "testCreateTransactionChain"); @@ -44,6 +53,7 @@ public class ShardTest extends AbstractActorTest { final boolean result = new JavaTestKit.EventFilter(Logging.Info.class ) { + @Override protected Boolean run() { return true; } @@ -53,13 +63,15 @@ public class ShardTest extends AbstractActorTest { Assert.assertEquals(true, result); - new Within(duration("1 seconds")) { + new Within(duration("3 seconds")) { + @Override protected void run() { subject.tell(new CreateTransactionChain().toSerializable(), getRef()); - final String out = new ExpectMsg(duration("1 seconds"), "match hint") { + final String out = new ExpectMsg(duration("3 seconds"), "match hint") { // do not put code outside this method, will run afterwards + @Override protected String match(Object in) { if (in.getClass().equals(CreateTransactionChainReply.SERIALIZABLE_CLASS)){ CreateTransactionChainReply reply = @@ -87,11 +99,16 @@ public class ShardTest extends AbstractActorTest { @Test public void testOnReceiveRegisterListener() throws Exception { new JavaTestKit(getSystem()) {{ - final Props props = Shard.props("config", Collections.EMPTY_MAP); + final ShardIdentifier identifier = + ShardIdentifier.builder().memberName("member-1") + .shardName("inventory").type("config").build(); + + final Props props = Shard.props(identifier, Collections.EMPTY_MAP, DATA_STORE_CONTEXT); final ActorRef subject = getSystem().actorOf(props, "testRegisterChangeListener"); - new Within(duration("1 seconds")) { + new Within(duration("3 seconds")) { + @Override protected void run() { subject.tell( @@ -102,8 +119,10 @@ public class ShardTest extends AbstractActorTest { getRef().path(), AsyncDataBroker.DataChangeScope.BASE), getRef()); - final Boolean notificationEnabled = new ExpectMsg("enable notification") { + final Boolean notificationEnabled = new ExpectMsg( + duration("3 seconds"), "enable notification") { // do not put code outside this method, will run afterwards + @Override protected Boolean match(Object in) { if(in instanceof EnableNotification){ return ((EnableNotification) in).isEnabled(); @@ -115,8 +134,9 @@ public class ShardTest extends AbstractActorTest { assertFalse(notificationEnabled); - final String out = new ExpectMsg(duration("1 seconds"), "match hint") { + final String out = new ExpectMsg(duration("3 seconds"), "match hint") { // do not put code outside this method, will run afterwards + @Override protected String match(Object in) { if (in.getClass().equals(RegisterChangeListenerReply.class)) { RegisterChangeListenerReply reply = @@ -141,15 +161,19 @@ public class ShardTest extends AbstractActorTest { @Test public void testCreateTransaction(){ new JavaTestKit(getSystem()) {{ - final Props props = Shard.props("config", Collections.EMPTY_MAP); + final ShardIdentifier identifier = + ShardIdentifier.builder().memberName("member-1") + .shardName("inventory").type("config").build(); + + final Props props = Shard.props(identifier, Collections.EMPTY_MAP, DATA_STORE_CONTEXT); final ActorRef subject = getSystem().actorOf(props, "testCreateTransaction"); - // Wait for a specific log message to show up final boolean result = new JavaTestKit.EventFilter(Logging.Info.class ) { + @Override protected Boolean run() { return true; } @@ -159,7 +183,8 @@ public class ShardTest extends AbstractActorTest { Assert.assertEquals(true, result); - new Within(duration("1 seconds")) { + new Within(duration("3 seconds")) { + @Override protected void run() { subject.tell( @@ -169,8 +194,9 @@ public class ShardTest extends AbstractActorTest { subject.tell(new CreateTransaction("txn-1", TransactionProxy.TransactionType.READ_ONLY.ordinal() ).toSerializable(), getRef()); - final String out = new ExpectMsg(duration("1 seconds"), "match hint") { + final String out = new ExpectMsg(duration("3 seconds"), "match hint") { // do not put code outside this method, will run afterwards + @Override protected String match(Object in) { if (in instanceof CreateTransactionReply) { CreateTransactionReply reply = @@ -187,8 +213,6 @@ public class ShardTest extends AbstractActorTest { out.contains("akka://test/user/testCreateTransaction/shard-txn-1")); expectNoMsg(); } - - }; }}; } @@ -196,23 +220,27 @@ public class ShardTest extends AbstractActorTest { @Test public void testPeerAddressResolved(){ new JavaTestKit(getSystem()) {{ - Map peerAddresses = new HashMap<>(); - peerAddresses.put("member-2", null); - final Props props = Shard.props("config", peerAddresses); + Map peerAddresses = new HashMap<>(); + + final ShardIdentifier identifier = + ShardIdentifier.builder().memberName("member-1") + .shardName("inventory").type("config").build(); + + peerAddresses.put(identifier, null); + final Props props = Shard.props(identifier, peerAddresses, DATA_STORE_CONTEXT); final ActorRef subject = getSystem().actorOf(props, "testPeerAddressResolved"); - new Within(duration("1 seconds")) { + new Within(duration("3 seconds")) { + @Override protected void run() { subject.tell( - new PeerAddressResolved("member-2", "akka://foobar"), + new PeerAddressResolved(identifier, "akka://foobar"), getRef()); expectNoMsg(); } - - }; }}; }