Convert DataChangeListeners to DataTreeChangeListeners
[groupbasedpolicy.git] / renderers / ofoverlay / src / test / java / org / opendaylight / groupbasedpolicy / renderer / ofoverlay / SfcManagerTest.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay;
10
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;
15
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;
29
30 public class SfcManagerTest {
31
32     private SfcManager manager;
33
34     private DataBroker dataBroker;
35     private RpcProviderRegistry rpcRegistry;
36     private ExecutorService executor;
37     private ListenerRegistration<?> actionListener;
38
39     private DataObjectModification<ActionInstance> mockModification;
40     private Collection<DataTreeModification<ActionInstance>> changeEvent;
41     private ActionInstance dataObject;
42
43     @SuppressWarnings("unchecked")
44     @Before
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);
51
52         doReturn(actionListener).when(dataBroker).registerDataTreeChangeListener(
53                 any(DataTreeIdentifier.class), any(DataTreeChangeListener.class));
54
55         manager = new SfcManager(dataBroker, rpcRegistry, executor);
56
57         DataTreeModification<ActionInstance> mockDataTreeModification = mock(DataTreeModification.class);
58         mockModification = mock(DataObjectModification.class);
59         doReturn(mockModification).when(mockDataTreeModification).getRootNode();
60         changeEvent = Collections.singletonList(mockDataTreeModification);
61     }
62
63     @Test
64     public void constructorTest() throws Exception {
65         manager.close();
66         verify(actionListener).close();
67     }
68
69     @Test
70     public void onDataChangedTestAdd() {
71         doReturn(DataObjectModification.ModificationType.WRITE).when(mockModification).getModificationType();
72         doReturn(dataObject).when(mockModification).getDataAfter();
73
74         manager.onDataTreeChanged(changeEvent);
75         verify(executor).execute(any(Runnable.class));
76     }
77
78     @Test
79     public void onDataChangedTestDelete() {
80         doReturn(DataObjectModification.ModificationType.DELETE).when(mockModification).getModificationType();
81         doReturn(dataObject).when(mockModification).getDataBefore();
82
83         manager.onDataTreeChanged(changeEvent);
84         verify(executor).execute(any(Runnable.class));
85     }
86
87     @Test
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();
92
93         manager.onDataTreeChanged(changeEvent);
94         verify(executor).execute(any(Runnable.class));
95     }
96 }