Migrate common module to JUnit5
[transportpce.git] / common / src / test / java / org / opendaylight / transportpce / common / crossconnect / CrossConnectImplTest.java
1 /*
2  * Copyright © 2020 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
9 package org.opendaylight.transportpce.common.crossconnect;
10
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;
21
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;
31
32 public class CrossConnectImplTest {
33
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);
41
42     @BeforeEach
43     void setUp() {
44         crossConnectImpl = new CrossConnectImpl(deviceTransactionManager, mappingUtils, crossConnectImpl121,
45             crossConnectImpl221, crossConnectImpl710);
46     }
47
48
49     @Test
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");
55
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");
60     }
61
62     @Test
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");
67
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");
73     }
74
75     @Test
76     void deleteCrossConnect() {
77         when(mappingUtils.getOpenRoadmVersion(anyString())).thenReturn("bad node version");
78         List<String> res = crossConnectImpl.deleteCrossConnect("nodeId", "100", false);
79         assertNull(res);
80
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);
86     }
87
88     @Test
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");
93
94         when(mappingUtils.getOpenRoadmVersion(any())).thenReturn(OPENROADM_DEVICE_VERSION_1_2_1);
95         when(crossConnectImpl121.setPowerLevel(any(), any(), any(), any()))
96                 .thenReturn(true);
97         crossConnectImpl.setPowerLevel("nodeId", "power", Decimal64.valueOf("1"), "connection number");
98         assertTrue(true);
99     }
100 }