@Test(timeout = 10000)
public void testSuccessfulRegistrationForClusteredListener() {

    final TestKit kit = new TestKit(getSystem());
    ActorUtils actorUtils = new ActorUtils(getSystem(), kit.getRef(), mock(ClusterWrapper.class),
        mock(Configuration.class));
    ClusteredDOMDataTreeChangeListener mockClusteredListener = mock(
        ClusteredDOMDataTreeChangeListener.class);
    final YangInstanceIdentifier path = YangInstanceIdentifier.of(TestModel.TEST_QNAME);
    final DataTreeChangeListenerProxy<ClusteredDOMDataTreeChangeListener> proxy =
            new DataTreeChangeListenerProxy<>(actorUtils, mockClusteredListener, path);
    new Thread(() -> proxy.init("shard-1")).start();
    Duration timeout = Duration.ofSeconds(5);
    FindLocalShard findLocalShard = kit.expectMsgClass(timeout, FindLocalShard.class);
    assertEquals("getShardName", "shard-1", findLocalShard.getShardName());
    kit.reply(new LocalShardFound(kit.getRef()));
    RegisterDataTreeChangeListener registerMsg = kit.expectMsgClass(timeout,
        RegisterDataTreeChangeListener.class);
    assertEquals("getPath", path, registerMsg.getPath());
    assertTrue("isRegisterOnAllInstances", registerMsg.isRegisterOnAllInstances());
    proxy.close();
}