package org.opendaylight.controller.eos.akka;
import akka.actor.testkit.typed.javadsl.ActorTestKit;
+import java.time.Duration;
import java.util.List;
import org.junit.After;
import org.junit.Before;
@Before
public void setUp() throws Exception {
clusterNode = startup(2550, List.of("member-1"));
-
- reachableMember(clusterNode, "member-2");
- reachableMember(clusterNode, "member-3");
}
@After
public void tearDown() {
- ActorTestKit.shutdown(clusterNode.getActorSystem());
+ ActorTestKit.shutdown(clusterNode.getActorSystem(), Duration.ofSeconds(20));
}
@Test
public void testListenerPriorToAddingCandidates() {
final MockEntityOwnershipListener listener = registerListener(clusterNode, ENTITY_1);
- registerCandidates(clusterNode, ENTITY_1, "member-1", "member-2", "member-3");
+ registerCandidates(clusterNode, ENTITY_1, "member-1");
+ waitUntillOwnerPresent(clusterNode, ENTITY_1);
+
+ reachableMember(clusterNode, "member-2", DEFAULT_DATACENTER);
+ reachableMember(clusterNode, "member-3", DEFAULT_DATACENTER);
+
+ registerCandidates(clusterNode, ENTITY_1, "member-2", "member-3");
verifyListenerState(listener, ENTITY_1, true, true, false);
+ verifyNoAdditionalNotifications(listener, 5);
unregisterCandidates(clusterNode, ENTITY_1, "member-1");
verifyListenerState(listener, ENTITY_1, true, false, true);
registerCandidates(clusterNode, ENTITY_1, "member-1", "member-2", "member-3");
waitUntillOwnerPresent(clusterNode, ENTITY_1);
+ reachableMember(clusterNode, "member-2", DEFAULT_DATACENTER);
+ reachableMember(clusterNode, "member-3", DEFAULT_DATACENTER);
+
final MockEntityOwnershipListener listener = registerListener(clusterNode, ENTITY_1);
verifyListenerState(listener, ENTITY_1, true, true, false);
+ verifyNoAdditionalNotifications(listener, 5);
unregisterCandidates(clusterNode, ENTITY_1, "member-1", "member-2");
verifyListenerState(listener, ENTITY_1, true, false, true);
registerCandidates(clusterNode, ENTITY_1, "member-1", "member-2", "member-3");
waitUntillOwnerPresent(clusterNode, ENTITY_1);
+ reachableMember(clusterNode, "member-2", DEFAULT_DATACENTER);
+ reachableMember(clusterNode, "member-3", DEFAULT_DATACENTER);
+
final MockEntityOwnershipListener listener1 = registerListener(clusterNode, ENTITY_1);
final MockEntityOwnershipListener listener2 = registerListener(clusterNode, ENTITY_2);