Migrate networkmodel module to JUnit5
[transportpce.git] / networkmodel / src / test / java / org / opendaylight / transportpce / networkmodel / listeners / PortMappingListenerTest.java
1 /*
2  * Copyright © 2022 Orange.  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 package org.opendaylight.transportpce.networkmodel.listeners;
9
10 import static org.mockito.ArgumentMatchers.any;
11 import static org.mockito.Mockito.anyString;
12 import static org.mockito.Mockito.lenient;
13 import static org.mockito.Mockito.mock;
14 import static org.mockito.Mockito.never;
15 import static org.mockito.Mockito.times;
16 import static org.mockito.Mockito.verify;
17 import static org.mockito.Mockito.when;
18
19 import java.util.Collection;
20 import java.util.HashSet;
21 import org.junit.jupiter.api.BeforeEach;
22 import org.junit.jupiter.api.Test;
23 import org.junit.jupiter.api.extension.ExtendWith;
24 import org.mockito.Mock;
25 import org.mockito.Mockito;
26 import org.mockito.junit.jupiter.MockitoExtension;
27 import org.opendaylight.mdsal.binding.api.DataObjectModification;
28 import org.opendaylight.mdsal.binding.api.DataTreeModification;
29 import org.opendaylight.transportpce.networkmodel.service.NetworkModelService;
30 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping;
31
32
33 @ExtendWith(MockitoExtension.class)
34 public class PortMappingListenerTest {
35
36     @Mock
37     private NetworkModelService networkModelService;
38     private PortMappingListener portMappingListenerSpy;
39
40     @BeforeEach
41     void setUp() {
42         portMappingListenerSpy = Mockito.spy(new PortMappingListener(networkModelService));
43         lenient().doReturn("NodeID").when(portMappingListenerSpy).getNodeIdFromMappingDataTreeIdentifier(any());
44     }
45
46     @Test
47     void testOnDataTreeChangedWhenMappingOperAndAdminDidntChange() {
48         final Collection<DataTreeModification<Mapping>> changes = new HashSet<>();
49         @SuppressWarnings("unchecked") final DataTreeModification<Mapping> ch = mock(DataTreeModification.class);
50         changes.add(ch);
51         @SuppressWarnings("unchecked") final DataObjectModification<Mapping> mappingObject =
52                 mock(DataObjectModification.class);
53         final Mapping oldMapping = mock(Mapping.class);
54         final Mapping newMapping = mock(Mapping.class);
55
56         when(ch.getRootNode()).thenReturn(mappingObject);
57         when(mappingObject.getDataBefore()).thenReturn(oldMapping);
58         when(mappingObject.getDataAfter()).thenReturn(newMapping);
59         when(oldMapping.getPortAdminState()).thenReturn("InService");
60         when(oldMapping.getPortOperState()).thenReturn("InService");
61         when(newMapping.getPortAdminState()).thenReturn("InService");
62         when(newMapping.getPortOperState()).thenReturn("InService");
63
64         portMappingListenerSpy.onDataTreeChanged(changes);
65         verify(networkModelService, never()).updateOpenRoadmTopologies(anyString(), any(Mapping.class));
66     }
67
68     @Test
69     void testOnDataTreeChangedWhenMappingAdminChanged() {
70         final Collection<DataTreeModification<Mapping>> changes = new HashSet<>();
71         @SuppressWarnings("unchecked") final DataTreeModification<Mapping> ch = mock(DataTreeModification.class);
72         changes.add(ch);
73         @SuppressWarnings("unchecked") final DataObjectModification<Mapping> mappingObject =
74                 mock(DataObjectModification.class);
75         final Mapping oldMapping = mock(Mapping.class);
76         final Mapping newMapping = mock(Mapping.class);
77
78         when(ch.getRootNode()).thenReturn(mappingObject);
79         when(mappingObject.getDataBefore()).thenReturn(oldMapping);
80         when(mappingObject.getDataAfter()).thenReturn(newMapping);
81         when(oldMapping.getPortAdminState()).thenReturn("InService");
82         when(newMapping.getPortAdminState()).thenReturn("OutOfService");
83
84         portMappingListenerSpy.onDataTreeChanged(changes);
85         verify(networkModelService, times(1)).updateOpenRoadmTopologies(anyString(), any(Mapping.class));
86     }
87
88     @Test
89     void testOnDataTreeChangedWhenMappingOperChanged() {
90         final Collection<DataTreeModification<Mapping>> changes = new HashSet<>();
91         @SuppressWarnings("unchecked") final DataTreeModification<Mapping> ch = mock(DataTreeModification.class);
92         changes.add(ch);
93         @SuppressWarnings("unchecked") final DataObjectModification<Mapping> mappingObject =
94                 mock(DataObjectModification.class);
95         final Mapping oldMapping = mock(Mapping.class);
96         final Mapping newMapping = mock(Mapping.class);
97
98         when(ch.getRootNode()).thenReturn(mappingObject);
99         when(mappingObject.getDataBefore()).thenReturn(oldMapping);
100         when(mappingObject.getDataAfter()).thenReturn(newMapping);
101         when(oldMapping.getPortAdminState()).thenReturn("InService");
102         when(oldMapping.getPortOperState()).thenReturn("InService");
103         when(newMapping.getPortAdminState()).thenReturn("InService");
104         when(newMapping.getPortOperState()).thenReturn("OutOfService");
105
106         portMappingListenerSpy.onDataTreeChanged(changes);
107         verify(networkModelService, times(1)).updateOpenRoadmTopologies(anyString(), any(Mapping.class));
108     }
109 }