import akka.actor.ActorRef;
import akka.actor.ActorSelection;
import akka.pattern.Patterns;
-import akka.testkit.JavaTestKit;
import akka.testkit.TestActorRef;
+import akka.testkit.javadsl.TestKit;
import akka.util.Timeout;
-import com.google.common.base.Throwables;
+import java.time.Duration;
import java.util.AbstractMap.SimpleEntry;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.controller.cluster.datastore.messages.CloseDataTreeChangeListenerRegistration;
-import org.opendaylight.controller.cluster.datastore.messages.CloseDataTreeChangeListenerRegistrationReply;
+import org.opendaylight.controller.cluster.datastore.messages.CloseDataTreeNotificationListenerRegistration;
+import org.opendaylight.controller.cluster.datastore.messages.CloseDataTreeNotificationListenerRegistrationReply;
import org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeChangeListener;
-import org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeChangeListenerReply;
+import org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeNotificationListenerReply;
import org.opendaylight.controller.cluster.datastore.utils.MockDataTreeChangeListener;
import org.opendaylight.controller.md.cluster.datastore.model.TestModel;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
import scala.concurrent.Await;
-import scala.concurrent.duration.Duration;
+import scala.concurrent.duration.FiniteDuration;
/**
* Unit tests for DataTreeChangeListenerSupport.
}
@Test
- public void testChangeListenerWithNoInitialData() throws Exception {
+ public void testChangeListenerWithNoInitialData() {
MockDataTreeChangeListener listener = registerChangeListener(TEST_PATH, 0).getKey();
listener.expectNoMoreChanges("Unexpected initial change event");
}
@Test
- public void testInitialChangeListenerEventWithContainerPath() throws Exception {
+ public void testInitialChangeListenerEventWithContainerPath() throws DataValidationFailedException {
writeToStore(shard.getDataStore(), TEST_PATH, ImmutableNodes.containerNode(TEST_QNAME));
Entry<MockDataTreeChangeListener, ActorSelection> entry = registerChangeListener(TEST_PATH, 1);
listener.verifyNotifiedData(TEST_PATH);
listener.reset(1);
- JavaTestKit kit = new JavaTestKit(getSystem());
- entry.getValue().tell(CloseDataTreeChangeListenerRegistration.getInstance(), kit.getRef());
- kit.expectMsgClass(JavaTestKit.duration("5 seconds"), CloseDataTreeChangeListenerRegistrationReply.class);
+ TestKit kit = new TestKit(getSystem());
+ entry.getValue().tell(CloseDataTreeNotificationListenerRegistration.getInstance(), kit.getRef());
+ kit.expectMsgClass(Duration.ofSeconds(5), CloseDataTreeNotificationListenerRegistrationReply.class);
writeToStore(shard.getDataStore(), TEST_PATH, ImmutableNodes.containerNode(TEST_QNAME));
listener.verifyNoNotifiedData(TEST_PATH);
}
@Test
- public void testInitialChangeListenerEventWithListPath() throws Exception {
+ public void testInitialChangeListenerEventWithListPath() throws DataValidationFailedException {
mergeToStore(shard.getDataStore(), TEST_PATH, testNodeWithOuter(1, 2));
MockDataTreeChangeListener listener = registerChangeListener(OUTER_LIST_PATH, 1).getKey();
}
@Test
- public void testInitialChangeListenerEventWithWildcardedListPath() throws Exception {
+ public void testInitialChangeListenerEventWithWildcardedListPath() throws DataValidationFailedException {
mergeToStore(shard.getDataStore(), TEST_PATH, testNodeWithOuter(1, 2));
MockDataTreeChangeListener listener =
}
@Test
- public void testInitialChangeListenerEventWithNestedWildcardedListsPath() throws Exception {
+ public void testInitialChangeListenerEventWithNestedWildcardedListsPath() throws DataValidationFailedException {
mergeToStore(shard.getDataStore(), TEST_PATH, testNodeWithOuter(outerNode(
outerNodeEntry(1, innerNode("one", "two")), outerNodeEntry(2, innerNode("three", "four")))));
MockDataTreeChangeListener listener = new MockDataTreeChangeListener(expectedEvents);
ActorRef dclActor = actorFactory.createActor(DataTreeChangeListenerActor.props(listener, TestModel.TEST_PATH));
+ RegisterDataTreeNotificationListenerReply reply;
try {
- RegisterDataTreeChangeListenerReply reply = (RegisterDataTreeChangeListenerReply)
- Await.result(Patterns.ask(shardActor, new RegisterDataTreeChangeListener(path, dclActor, false),
- new Timeout(5, TimeUnit.SECONDS)), Duration.create(5, TimeUnit.SECONDS));
- return new SimpleEntry<>(listener, getSystem().actorSelection(reply.getListenerRegistrationPath()));
-
+ reply = (RegisterDataTreeNotificationListenerReply)
+ Await.result(Patterns.ask(shardActor, new RegisterDataTreeChangeListener(path, dclActor, false),
+ new Timeout(5, TimeUnit.SECONDS)), FiniteDuration.create(5, TimeUnit.SECONDS));
+ } catch (RuntimeException e) {
+ throw e;
} catch (Exception e) {
- Throwables.propagate(e);
- return null;
+ throw new RuntimeException(e);
}
+ return new SimpleEntry<>(listener, getSystem().actorSelection(reply.getListenerRegistrationPath()));
}
private void createShard() {