package org.opendaylight.netconf.messagebus.eventsources.netconf;
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.notNull;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import com.google.common.base.Optional;
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.Futures;
+import java.util.Collections;
import java.util.HashMap;
-import java.util.Map;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.MountPointService;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
DOMMountPointService domMountPointServiceMock;
MountPointService mountPointServiceMock;
EventSourceRegistry eventSourceTopologyMock;
- AsyncDataChangeEvent asyncDataChangeEventMock;
+ DataTreeModification<Node> dataTreeModificationMock;
RpcProviderRegistry rpcProviderRegistryMock;
EventSourceRegistry eventSourceRegistry;
public static void initTestClass() throws IllegalAccessException, InstantiationException {
}
+ @SuppressWarnings("unchecked")
@Before
public void setUp() throws Exception {
final DataBroker dataBrokerMock = mock(DataBroker.class);
eventSourceRegistry = mock(EventSourceRegistry.class);
listenerRegistrationMock = mock(ListenerRegistration.class);
- doReturn(listenerRegistrationMock).when(dataBrokerMock).registerDataChangeListener(eq(LogicalDatastoreType
- .OPERATIONAL), any(InstanceIdentifier.class), any(NetconfEventSourceManager.class), eq(
- AsyncDataBroker.DataChangeScope.SUBTREE));
+ doReturn(listenerRegistrationMock).when(dataBrokerMock).registerDataTreeChangeListener(
+ any(DataTreeIdentifier.class), any(NetconfEventSourceManager.class));
DOMMountPoint domMountPointMock = mock(DOMMountPoint.class);
Optional<DOMMountPoint> optionalDomMountServiceMock = Optional.of(domMountPointMock);
@Test
public void onDataChangedCreateEventSourceTestByCreateEntry() throws Exception {
onDataChangedTestHelper(true, false, true, NetconfTestUtils.NOTIFICATION_CAPABILITY_PREFIX);
- netconfEventSourceManager.onDataChanged(asyncDataChangeEventMock);
+ netconfEventSourceManager.onDataTreeChanged(Collections.singletonList(dataTreeModificationMock));
verify(eventSourceRegistry, times(1)).registerEventSource(any(EventSource.class));
}
@Test
public void onDataChangedCreateEventSourceTestByUpdateEntry() throws Exception {
onDataChangedTestHelper(false, true, true, NetconfTestUtils.NOTIFICATION_CAPABILITY_PREFIX);
- netconfEventSourceManager.onDataChanged(asyncDataChangeEventMock);
+ netconfEventSourceManager.onDataTreeChanged(Collections.singletonList(dataTreeModificationMock));
verify(eventSourceRegistry, times(1)).registerEventSource(any(EventSource.class));
}
@Test
public void onDataChangedCreateEventSourceTestNotNeconf() throws Exception {
onDataChangedTestHelper(false, true, false, NetconfTestUtils.NOTIFICATION_CAPABILITY_PREFIX);
- netconfEventSourceManager.onDataChanged(asyncDataChangeEventMock);
+ netconfEventSourceManager.onDataTreeChanged(Collections.singletonList(dataTreeModificationMock));
verify(eventSourceRegistry, times(0)).registerEventSource(any(EventSource.class));
}
@Test
public void onDataChangedCreateEventSourceTestNotNotificationCapability() throws Exception {
onDataChangedTestHelper(true, false, true, "bad-prefix");
- netconfEventSourceManager.onDataChanged(asyncDataChangeEventMock);
+ netconfEventSourceManager.onDataTreeChanged(Collections.singletonList(dataTreeModificationMock));
verify(eventSourceRegistry, times(0)).registerEventSource(any(EventSource.class));
}
+ @SuppressWarnings("unchecked")
private void onDataChangedTestHelper(boolean create, boolean update, boolean isNetconf, String
notificationCapabilityPrefix) throws Exception {
- asyncDataChangeEventMock = mock(AsyncDataChangeEvent.class);
- Map<InstanceIdentifier, DataObject> mapCreate = new HashMap<>();
- Map<InstanceIdentifier, DataObject> mapUpdate = new HashMap<>();
+ dataTreeModificationMock = mock(DataTreeModification.class);
+ DataObjectModification<Node> mockModification = mock(DataObjectModification.class);
+ doReturn(create ? DataObjectModification.ModificationType.WRITE :
+ DataObjectModification.ModificationType.SUBTREE_MODIFIED).when(mockModification).getModificationType();
+ doReturn(mockModification).when(dataTreeModificationMock).getRootNode();
- Node node01;
+ final Node node01;
String nodeId = "Node01";
- doReturn(mapCreate).when(asyncDataChangeEventMock).getCreatedData();
- doReturn(mapUpdate).when(asyncDataChangeEventMock).getUpdatedData();
-
if (isNetconf) {
node01 = NetconfTestUtils
.getNetconfNode(nodeId, "node01.test.local", ConnectionStatus.Connected,
node01 = NetconfTestUtils.getNode(nodeId);
}
- if (create) {
- mapCreate.put(NetconfTestUtils.getInstanceIdentifier(node01), node01);
- }
- if (update) {
- mapUpdate.put(NetconfTestUtils.getInstanceIdentifier(node01), node01);
- }
+ doReturn(node01).when(mockModification).getDataAfter();
+ doReturn(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
+ NetconfTestUtils.getInstanceIdentifier(node01))).when(dataTreeModificationMock).getRootPath();
}
-}
\ No newline at end of file
+}