Fix warnings in sal-akka-raft test classes
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / test / java / org / opendaylight / controller / cluster / raft / utils / ForwardMessageToBehaviorActor.java
index 9bcfcd9091281db235975bfbad3a9f0e04129c82..6c6f1905e44d58d1307aed8d499751050f0644a3 100644 (file)
@@ -8,18 +8,22 @@
 
 package org.opendaylight.controller.cluster.raft.utils;
 
+import static org.junit.Assert.assertTrue;
+
 import akka.actor.Props;
+import java.util.ArrayList;
+import java.util.List;
 import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior;
 
 public class ForwardMessageToBehaviorActor extends MessageCollectorActor {
-    private RaftActorBehavior behavior;
+    private volatile RaftActorBehavior behavior;
+    private final List<RaftActorBehavior> behaviorChanges = new ArrayList<>();
 
     @Override
     public void onReceive(Object message) throws Exception {
-        if(behavior != null) {
-            behavior.handleMessage(sender(), message);
+        if (behavior != null) {
+            behaviorChanges.add(behavior.handleMessage(sender(), message));
         }
-
         super.onReceive(message);
     }
 
@@ -27,8 +31,28 @@ public class ForwardMessageToBehaviorActor extends MessageCollectorActor {
         return Props.create(ForwardMessageToBehaviorActor.class);
     }
 
-    public void setBehavior(RaftActorBehavior behavior){
+    public void setBehavior(RaftActorBehavior behavior) {
         this.behavior = behavior;
     }
+
+    public RaftActorBehavior getFirstBehaviorChange() {
+        assertTrue("no behavior changes present", behaviorChanges.size() > 0);
+        return behaviorChanges.get(0);
+    }
+
+    public RaftActorBehavior getLastBehaviorChange() {
+        assertTrue("no behavior changes present", behaviorChanges.size() > 0);
+        return behaviorChanges.get(behaviorChanges.size() - 1);
+    }
+
+    public List<RaftActorBehavior> getBehaviorChanges() {
+        return behaviorChanges;
+    }
+
+    @Override
+    public void clear() {
+        super.clear();
+        behaviorChanges.clear();
+    }
 }