2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay;
11 import static org.mockito.Matchers.any;
12 import static org.mockito.Mockito.doReturn;
13 import static org.mockito.Mockito.mock;
14 import static org.mockito.Mockito.verify;
16 import java.util.Collection;
17 import java.util.Collections;
18 import java.util.concurrent.ExecutorService;
19 import org.junit.Before;
20 import org.junit.Test;
21 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
22 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
23 import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
24 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
25 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
26 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ActionInstance;
28 import org.opendaylight.yangtools.concepts.ListenerRegistration;
30 public class SfcManagerTest {
32 private SfcManager manager;
34 private DataBroker dataBroker;
35 private RpcProviderRegistry rpcRegistry;
36 private ExecutorService executor;
37 private ListenerRegistration<?> actionListener;
39 private DataObjectModification<ActionInstance> mockModification;
40 private Collection<DataTreeModification<ActionInstance>> changeEvent;
41 private ActionInstance dataObject;
43 @SuppressWarnings("unchecked")
45 public void initialise() {
46 dataBroker = mock(DataBroker.class);
47 rpcRegistry = mock(RpcProviderRegistry.class);
48 executor = mock(ExecutorService.class);
49 actionListener = mock(ListenerRegistration.class);
50 dataObject = mock(ActionInstance.class);
52 doReturn(actionListener).when(dataBroker).registerDataTreeChangeListener(
53 any(DataTreeIdentifier.class), any(DataTreeChangeListener.class));
55 manager = new SfcManager(dataBroker, rpcRegistry, executor);
57 DataTreeModification<ActionInstance> mockDataTreeModification = mock(DataTreeModification.class);
58 mockModification = mock(DataObjectModification.class);
59 doReturn(mockModification).when(mockDataTreeModification).getRootNode();
60 changeEvent = Collections.singletonList(mockDataTreeModification);
64 public void constructorTest() throws Exception {
66 verify(actionListener).close();
70 public void onDataChangedTestAdd() {
71 doReturn(DataObjectModification.ModificationType.WRITE).when(mockModification).getModificationType();
72 doReturn(dataObject).when(mockModification).getDataAfter();
74 manager.onDataTreeChanged(changeEvent);
75 verify(executor).execute(any(Runnable.class));
79 public void onDataChangedTestDelete() {
80 doReturn(DataObjectModification.ModificationType.DELETE).when(mockModification).getModificationType();
81 doReturn(dataObject).when(mockModification).getDataBefore();
83 manager.onDataTreeChanged(changeEvent);
84 verify(executor).execute(any(Runnable.class));
88 public void onDataChangedTestChange() {
89 doReturn(DataObjectModification.ModificationType.SUBTREE_MODIFIED).when(mockModification).getModificationType();
90 doReturn(dataObject).when(mockModification).getDataBefore();
91 doReturn(dataObject).when(mockModification).getDataAfter();
93 manager.onDataTreeChanged(changeEvent);
94 verify(executor).execute(any(Runnable.class));