2 * Copyright © 2022 Orange. 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
8 package org.opendaylight.transportpce.networkmodel.listeners;
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;
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.rev220922.mapping.Mapping;
33 @ExtendWith(MockitoExtension.class)
34 public class PortMappingListenerTest {
37 private NetworkModelService networkModelService;
38 private PortMappingListener portMappingListenerSpy;
42 portMappingListenerSpy = Mockito.spy(new PortMappingListener(networkModelService));
43 lenient().doReturn("NodeID").when(portMappingListenerSpy).getNodeIdFromMappingDataTreeIdentifier(any());
47 void testOnDataTreeChangedWhenMappingOperAndAdminDidntChange() {
48 final Collection<DataTreeModification<Mapping>> changes = new HashSet<>();
49 @SuppressWarnings("unchecked") final DataTreeModification<Mapping> ch = mock(DataTreeModification.class);
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);
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");
64 portMappingListenerSpy.onDataTreeChanged(changes);
65 verify(networkModelService, never()).updateOpenRoadmTopologies(anyString(), any(Mapping.class));
69 void testOnDataTreeChangedWhenMappingAdminChanged() {
70 final Collection<DataTreeModification<Mapping>> changes = new HashSet<>();
71 @SuppressWarnings("unchecked") final DataTreeModification<Mapping> ch = mock(DataTreeModification.class);
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);
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");
84 portMappingListenerSpy.onDataTreeChanged(changes);
85 verify(networkModelService, times(1)).updateOpenRoadmTopologies(anyString(), any(Mapping.class));
89 void testOnDataTreeChangedWhenMappingOperChanged() {
90 final Collection<DataTreeModification<Mapping>> changes = new HashSet<>();
91 @SuppressWarnings("unchecked") final DataTreeModification<Mapping> ch = mock(DataTreeModification.class);
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);
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");
106 portMappingListenerSpy.onDataTreeChanged(changes);
107 verify(networkModelService, times(1)).updateOpenRoadmTopologies(anyString(), any(Mapping.class));