2 * Copyright © 2020 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
9 package org.opendaylight.transportpce.common.crossconnect;
11 import static org.junit.jupiter.api.Assertions.assertEquals;
12 import static org.junit.jupiter.api.Assertions.assertFalse;
13 import static org.junit.jupiter.api.Assertions.assertNull;
14 import static org.junit.jupiter.api.Assertions.assertTrue;
15 import static org.mockito.ArgumentMatchers.any;
16 import static org.mockito.ArgumentMatchers.anyString;
17 import static org.mockito.Mockito.mock;
18 import static org.mockito.Mockito.when;
19 import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEVICE_VERSION_1_2_1;
20 import static org.opendaylight.transportpce.common.StringConstants.OPENROADM_DEVICE_VERSION_2_2_1;
22 import java.util.List;
23 import java.util.Optional;
24 import org.junit.jupiter.api.BeforeEach;
25 import org.junit.jupiter.api.Test;
26 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
27 import org.opendaylight.transportpce.common.fixedflex.SpectrumInformation;
28 import org.opendaylight.transportpce.common.mapping.MappingUtils;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.rev181019.org.openroadm.device.container.org.openroadm.device.RoadmConnections;
30 import org.opendaylight.yangtools.yang.common.Decimal64;
32 public class CrossConnectImplTest {
34 private CrossConnectImpl crossConnectImpl = null;
35 private static DeviceTransactionManager deviceTransactionManager = mock(DeviceTransactionManager.class);
36 private CrossConnectImpl121 crossConnectImpl121 = mock(CrossConnectImpl121.class);
37 private CrossConnectImpl221 crossConnectImpl221 = mock(CrossConnectImpl221.class);
38 private CrossConnectImpl710 crossConnectImpl710 = mock(CrossConnectImpl710.class);
39 private MappingUtils mappingUtils = mock(MappingUtils.class);
40 private SpectrumInformation spectrumInfo = mock(SpectrumInformation.class);
44 crossConnectImpl = new CrossConnectImpl(deviceTransactionManager, mappingUtils, crossConnectImpl121,
45 crossConnectImpl221, crossConnectImpl710);
50 void getCrossConnect() {
51 when(mappingUtils.getOpenRoadmVersion("NodeId")).thenReturn(OPENROADM_DEVICE_VERSION_2_2_1);
52 when(crossConnectImpl221.getCrossConnect(any(), any())).thenReturn(Optional.empty());
53 Optional<?> res = crossConnectImpl.getCrossConnect("NodeId", "122");
54 assertFalse(res.isPresent(), "Optional object should be empty");
56 when(mappingUtils.getOpenRoadmVersion(any())).thenReturn(OPENROADM_DEVICE_VERSION_2_2_1);
57 when(crossConnectImpl221.getCrossConnect(any(), any())).thenReturn(Optional.of(mock(RoadmConnections.class)));
58 res = crossConnectImpl.getCrossConnect("NodeId", "122");
59 assertTrue(res.isPresent(), "Optional object should have a value");
63 void postCrossConnect() {
64 when(mappingUtils.getOpenRoadmVersion(anyString())).thenReturn("bad node version");
65 Optional<?> res = crossConnectImpl.postCrossConnect("nodeId", "srcTp", "destTp", spectrumInfo);
66 assertFalse(res.isPresent(), "Optional object should be empty");
68 when(mappingUtils.getOpenRoadmVersion(any())).thenReturn(OPENROADM_DEVICE_VERSION_2_2_1);
69 when(crossConnectImpl221.postCrossConnect(any(), any(), any(), any()))
70 .thenReturn(Optional.of("Connection Number"));
71 res = crossConnectImpl.postCrossConnect("100", "srcTp", "destTp", spectrumInfo);
72 assertTrue(res.isPresent(), "Optional object should have a value");
76 void deleteCrossConnect() {
77 when(mappingUtils.getOpenRoadmVersion(anyString())).thenReturn("bad node version");
78 List<String> res = crossConnectImpl.deleteCrossConnect("nodeId", "100", false);
81 when(mappingUtils.getOpenRoadmVersion(any())).thenReturn(OPENROADM_DEVICE_VERSION_1_2_1);
82 when(crossConnectImpl121.deleteCrossConnect(any(), any()))
83 .thenReturn(List.of("interface1", "interface2"));
84 res = crossConnectImpl.deleteCrossConnect("nodeId", "100", false);
85 assertEquals(res.size(), 2);
89 void setPowerLevel() {
90 when(mappingUtils.getOpenRoadmVersion(anyString())).thenReturn(OPENROADM_DEVICE_VERSION_1_2_1);
91 boolean res = crossConnectImpl.setPowerLevel("nodeId", "bad mode", Decimal64.valueOf("1"), "connection number");
92 assertFalse(res, "Power Level sgould be false");
94 when(mappingUtils.getOpenRoadmVersion(any())).thenReturn(OPENROADM_DEVICE_VERSION_1_2_1);
95 when(crossConnectImpl121.setPowerLevel(any(), any(), any(), any()))
97 crossConnectImpl.setPowerLevel("nodeId", "power", Decimal64.valueOf("1"), "connection number");