X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2Futils%2FMessageCollectorActor.java;h=7e3e344908aa83fe973a666beb84a5701b08a13c;hb=refs%2Fchanges%2F47%2F29947%2F5;hp=6ea7a20924d4480b0497c02e715eefddee81556c;hpb=f3473ee42d45f1524dcafa6cc37e19e0393e9693;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/MessageCollectorActor.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/MessageCollectorActor.java index 6ea7a20924..7e3e344908 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/MessageCollectorActor.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/MessageCollectorActor.java @@ -31,7 +31,7 @@ import scala.concurrent.duration.FiniteDuration; public class MessageCollectorActor extends UntypedActor { private static final String ARE_YOU_READY = "ARE_YOU_READY"; - private static final String GET_ALL_MESSAGES = "get-all-messages"; + public static final String GET_ALL_MESSAGES = "messages"; private static final String CLEAR_MESSAGES = "clear-messages"; private final List messages = new ArrayList<>(); @@ -45,7 +45,7 @@ public class MessageCollectorActor extends UntypedActor { if(GET_ALL_MESSAGES.equals(message)) { getSender().tell(new ArrayList<>(messages), getSelf()); } else if(CLEAR_MESSAGES.equals(message)) { - messages.clear(); + clear(); } else if(message != null) { messages.add(SerializationUtils.fromSerializable(message)); } @@ -55,7 +55,7 @@ public class MessageCollectorActor extends UntypedActor { messages.clear(); } - public static List getAllMessages(ActorRef actor) throws Exception { + private static List getAllMessages(ActorRef actor) throws Exception { FiniteDuration operationDuration = Duration.create(5, TimeUnit.SECONDS); Timeout operationTimeout = new Timeout(operationDuration); Future future = Patterns.ask(actor, GET_ALL_MESSAGES, operationTimeout); @@ -78,7 +78,7 @@ public class MessageCollectorActor extends UntypedActor { for(Object message : allMessages){ if(message.getClass().equals(clazz)){ - return (T) message; + return clazz.cast(message); } } @@ -108,6 +108,7 @@ public class MessageCollectorActor extends UntypedActor { return expectFirstMatching(actor, clazz, 5000); } + public static T expectFirstMatching(ActorRef actor, Class clazz, long timeout) { int count = (int) (timeout / 50); for(int i = 0; i < count; i++) { @@ -147,6 +148,28 @@ public class MessageCollectorActor extends UntypedActor { return null; } + public static void assertNoneMatching(ActorRef actor, Class clazz) { + assertNoneMatching(actor, clazz, 5000); + } + + public static void assertNoneMatching(ActorRef actor, Class clazz, long timeout) { + int count = (int) (timeout / 50); + for(int i = 0; i < count; i++) { + try { + T message = getFirstMatching(actor, clazz); + if(message != null) { + Assert.fail("Unexpected message received" + message.toString()); + return; + } + } catch (Exception e) {} + + Uninterruptibles.sleepUninterruptibly(50, TimeUnit.MILLISECONDS); + } + + return; + } + + public static List getAllMatching(ActorRef actor, Class clazz) throws Exception { List allMessages = getAllMessages(actor); @@ -154,7 +177,7 @@ public class MessageCollectorActor extends UntypedActor { for(Object message : allMessages){ if(message.getClass().equals(clazz)){ - output.add((T) message); + output.add(clazz.cast(message)); } }