Search in sources :

Example 41 with UpdateSchemaContext

use of org.opendaylight.controller.cluster.datastore.messages.UpdateSchemaContext in project controller by opendaylight.

the class ShardTest method testRegisterDataTreeChangeListener.

@Test
public void testRegisterDataTreeChangeListener() throws Exception {
    new ShardTestKit(getSystem()) {

        {
            final TestActorRef<Shard> shard = actorFactory.createTestActor(newShardProps().withDispatcher(Dispatchers.DefaultDispatcherId()), "testRegisterDataTreeChangeListener");
            waitUntilLeader(shard);
            shard.tell(new UpdateSchemaContext(SchemaContextHelper.full()), ActorRef.noSender());
            final MockDataTreeChangeListener listener = new MockDataTreeChangeListener(1);
            final ActorRef dclActor = actorFactory.createActor(DataTreeChangeListenerActor.props(listener, TestModel.TEST_PATH), "testRegisterDataTreeChangeListener-DataTreeChangeListener");
            shard.tell(new RegisterDataTreeChangeListener(TestModel.TEST_PATH, dclActor, false), getRef());
            final RegisterDataTreeNotificationListenerReply reply = expectMsgClass(duration("3 seconds"), RegisterDataTreeNotificationListenerReply.class);
            final String replyPath = reply.getListenerRegistrationPath().toString();
            assertTrue("Incorrect reply path: " + replyPath, replyPath.matches("akka:\\/\\/test\\/user\\/testRegisterDataTreeChangeListener\\/\\$.*"));
            final YangInstanceIdentifier path = TestModel.TEST_PATH;
            writeToStore(shard, path, ImmutableNodes.containerNode(TestModel.TEST_QNAME));
            listener.waitForChangeEvents();
        }
    };
}
Also used : UpdateSchemaContext(org.opendaylight.controller.cluster.datastore.messages.UpdateSchemaContext) RegisterDataTreeNotificationListenerReply(org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeNotificationListenerReply) MockDataTreeChangeListener(org.opendaylight.controller.cluster.datastore.utils.MockDataTreeChangeListener) ActorRef(akka.actor.ActorRef) TestActorRef(akka.testkit.TestActorRef) RegisterDataTreeChangeListener(org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeChangeListener) YangInstanceIdentifier(org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier) Test(org.junit.Test)

Aggregations

UpdateSchemaContext (org.opendaylight.controller.cluster.datastore.messages.UpdateSchemaContext)41 Test (org.junit.Test)39 ActorRef (akka.actor.ActorRef)37 TestActorRef (akka.testkit.TestActorRef)37 TestKit (akka.testkit.javadsl.TestKit)37 AbstractShardManagerTest (org.opendaylight.controller.cluster.datastore.AbstractShardManagerTest)36 ActorInitialized (org.opendaylight.controller.cluster.datastore.messages.ActorInitialized)26 AddressFromURIString (akka.actor.AddressFromURIString)24 RoleChangeNotification (org.opendaylight.controller.cluster.notifications.RoleChangeNotification)18 FindPrimary (org.opendaylight.controller.cluster.datastore.messages.FindPrimary)15 ShardLeaderStateChanged (org.opendaylight.controller.cluster.datastore.messages.ShardLeaderStateChanged)15 MockConfiguration (org.opendaylight.controller.cluster.datastore.utils.MockConfiguration)14 FindLocalShard (org.opendaylight.controller.cluster.datastore.messages.FindLocalShard)9 ActorSystem (akka.actor.ActorSystem)6 Failure (akka.actor.Status.Failure)6 ClusterWrapperImpl (org.opendaylight.controller.cluster.datastore.ClusterWrapperImpl)6 AddShardReplica (org.opendaylight.controller.cluster.datastore.messages.AddShardReplica)6 ChangeShardMembersVotingStatus (org.opendaylight.controller.cluster.datastore.messages.ChangeShardMembersVotingStatus)6 FollowerInitialSyncUpStatus (org.opendaylight.controller.cluster.raft.base.messages.FollowerInitialSyncUpStatus)6 ChangeServersVotingStatus (org.opendaylight.controller.cluster.raft.messages.ChangeServersVotingStatus)6