X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDataChangeListenerProxyTest.java;h=d5416a0d5be8944c51b1dc382f7091691cf3032d;hb=c1336f9b497bc6867536a24f629c3f0b002ccb2f;hp=a8409a6f85fcfd78063277a3ffd344457a62d369;hpb=44c747db358bf0d49434d5f818121286b5928d4a;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerProxyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerProxyTest.java index a8409a6f85..d5416a0d5b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerProxyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerProxyTest.java @@ -1,81 +1,103 @@ +/* + * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + package org.opendaylight.controller.cluster.datastore; import akka.actor.ActorRef; import akka.actor.Props; -import junit.framework.Assert; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.junit.Assert; import org.junit.Test; import org.opendaylight.controller.cluster.datastore.messages.DataChanged; import org.opendaylight.controller.cluster.datastore.utils.ActorContext; -import org.opendaylight.controller.cluster.datastore.utils.DoNothingActor; -import org.opendaylight.controller.cluster.datastore.utils.MessageCollectorActor; +import org.opendaylight.controller.cluster.datastore.utils.MockClusterWrapper; +import org.opendaylight.controller.cluster.datastore.utils.MockConfiguration; +import org.opendaylight.controller.cluster.raft.utils.DoNothingActor; +import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; +import org.opendaylight.controller.md.cluster.datastore.model.CompositeModel; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import java.util.List; -import java.util.Map; -import java.util.Set; - public class DataChangeListenerProxyTest extends AbstractActorTest { - private static class MockDataChangeEvent implements - AsyncDataChangeEvent> { + private static class MockDataChangedEvent + implements AsyncDataChangeEvent> { + Map> createdData = new HashMap<>(); + Map> updatedData = new HashMap<>(); + Map> originalData = new HashMap<>(); @Override - public Map> getCreatedData() { - throw new UnsupportedOperationException("getCreatedData"); + public Map> getCreatedData() { + createdData.put(YangInstanceIdentifier.EMPTY, CompositeModel.createDocumentOne( + CompositeModel.createTestContext())); + return createdData; } @Override - public Map> getUpdatedData() { - throw new UnsupportedOperationException("getUpdatedData"); + public Map> getUpdatedData() { + updatedData.put(YangInstanceIdentifier.EMPTY, CompositeModel.createTestContainer()); + return updatedData; + } - @Override public Set getRemovedPaths() { - throw new UnsupportedOperationException("getRemovedPaths"); + @Override + public Set getRemovedPaths() { + Set ids = new HashSet<>(); + ids.add(CompositeModel.TEST_PATH); + return ids; } @Override - public Map> getOriginalData() { - throw new UnsupportedOperationException("getOriginalData"); + public Map> getOriginalData() { + originalData.put(YangInstanceIdentifier.EMPTY, CompositeModel.createFamily()); + return originalData; } @Override public NormalizedNode getOriginalSubtree() { - throw new UnsupportedOperationException("getOriginalSubtree"); + return CompositeModel.createFamily() ; } @Override public NormalizedNode getUpdatedSubtree() { - throw new UnsupportedOperationException("getUpdatedSubtree"); + return CompositeModel.createTestContainer(); } } + @Test public void testOnDataChanged() throws Exception { final Props props = Props.create(MessageCollectorActor.class); final ActorRef actorRef = getSystem().actorOf(props); - DataChangeListenerProxy dataChangeListenerProxy = - new DataChangeListenerProxy( + DataChangeListenerProxy dataChangeListenerProxy = new DataChangeListenerProxy( getSystem().actorSelection(actorRef.path())); - dataChangeListenerProxy.onDataChanged(new MockDataChangeEvent()); + dataChangeListenerProxy.onDataChanged(new MockDataChangedEvent()); //Check if it was received by the remote actor - ActorContext - testContext = new ActorContext(getSystem(), getSystem().actorOf(Props.create(DoNothingActor.class))); + ActorContext testContext = new ActorContext(getSystem(), getSystem().actorOf( + Props.create(DoNothingActor.class)), new MockClusterWrapper(), new MockConfiguration()); Object messages = testContext - .executeLocalOperation(actorRef, "messages", - ActorContext.ASK_DURATION); + .executeOperation(actorRef, MessageCollectorActor.GET_ALL_MESSAGES); Assert.assertNotNull(messages); Assert.assertTrue(messages instanceof List); - List listMessages = (List) messages; + List listMessages = (List) messages; Assert.assertEquals(1, listMessages.size()); - Assert.assertTrue(listMessages.get(0) instanceof DataChanged); + Assert.assertTrue(listMessages.get(0).getClass().equals(DataChanged.class)); } }