Update PCE for OTUC4, ODUC4 and 100GE MXPDR
[transportpce.git] / pce / src / test / java / org / opendaylight / transportpce / pce / PceSendingPceRPCsTest.java
1 /*
2  * Copyright © 2020 Orange Labs, 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 package org.opendaylight.transportpce.pce;
9
10
11 import static org.mockito.ArgumentMatchers.anyString;
12 import static org.mockito.Mockito.when;
13
14 import org.junit.Assert;
15 import org.junit.Before;
16 import org.junit.Test;
17 import org.junit.runner.RunWith;
18 import org.mockito.Mock;
19 import org.mockito.junit.MockitoJUnitRunner;
20 import org.opendaylight.mdsal.binding.api.DataBroker;
21 import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices;
22 import org.opendaylight.transportpce.common.mapping.PortMapping;
23 import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
24 import org.opendaylight.transportpce.common.network.RequestProcessor;
25 import org.opendaylight.transportpce.pce.gnpy.JerseyServer;
26 import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumer;
27 import org.opendaylight.transportpce.pce.gnpy.consumer.GnpyConsumerImpl;
28 import org.opendaylight.transportpce.pce.utils.PceTestData;
29 import org.opendaylight.transportpce.pce.utils.PceTestUtils;
30 import org.opendaylight.transportpce.test.AbstractTest;
31 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.Mapping;
32 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.mapping.MappingBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
34 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.NodesKey;
36 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfo;
37 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.nodes.NodeInfoBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
39 import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory;
40
41 @RunWith(MockitoJUnitRunner.class)
42 public class PceSendingPceRPCsTest extends AbstractTest {
43
44     private PceSendingPceRPCs pceSendingPceRPCs;
45     private NetworkTransactionImpl networkTransaction;
46     private Mapping mapping;
47     @Mock
48     private YangParserFactory yangParserFactory;
49     @Mock
50     private BindingDOMCodecServices bindingDOMCodecServices;
51     private JerseyServer jerseyServer = new JerseyServer();
52     private DataBroker dataBroker;
53     private GnpyConsumer gnpyConsumer;
54     @Mock
55     private PortMapping portMapping;
56
57
58     @Before
59     public void setUp() {
60         this.dataBroker = getNewDataBroker();
61         networkTransaction = new NetworkTransactionImpl(new RequestProcessor(this.dataBroker));
62         PceTestUtils.writeNetworkInDataStore(this.dataBroker);
63         gnpyConsumer = new GnpyConsumerImpl("http://localhost:9998",
64                 "mylogin", "mypassword", getDataStoreContextUtil().getBindingDOMCodecServices());
65         pceSendingPceRPCs = new PceSendingPceRPCs(PceTestData.getPCE_test1_request_54(),
66                         networkTransaction, gnpyConsumer, portMapping);
67         mapping = new MappingBuilder().setLogicalConnectionPoint("logicalConnectionPoint").setPortQual("xpdr-client")
68             .build();
69         NodeInfo info = new NodeInfoBuilder().setNodeType(NodeTypes.Xpdr).build();
70         Nodes node = new NodesBuilder().withKey(new NodesKey("node")).setNodeId("node").setNodeInfo(info).build();
71         when(portMapping.getMapping(anyString(), anyString())).thenReturn(mapping);
72         when(portMapping.getNode(anyString())).thenReturn(node);
73     }
74
75     @Test
76     public void cancelResourceReserve() {
77         pceSendingPceRPCs.cancelResourceReserve();
78         Assert.assertTrue("Success should equal to true", pceSendingPceRPCs.getSuccess());
79     }
80
81     @Test
82     public void pathComputationTest() throws Exception {
83         jerseyServer.setUp();
84         pceSendingPceRPCs =
85                 new PceSendingPceRPCs(PceTestData.getGnpyPCERequest("XPONDER-1", "XPONDER-2"),
86                         networkTransaction, gnpyConsumer, portMapping);
87         when(portMapping.getMapping(anyString(), anyString())).thenReturn(mapping);
88         pceSendingPceRPCs.pathComputation();
89         Assert.assertTrue(gnpyConsumer.isAvailable());
90         jerseyServer.tearDown();
91
92     }
93
94     @Test
95     public void checkMessage() {
96         Assert.assertNull(pceSendingPceRPCs.getMessage());
97     }
98
99     @Test
100     public void responseCodeTest() {
101         Assert.assertNull(pceSendingPceRPCs.getResponseCode());
102     }
103
104     @Test
105     public void gnpyAtoZ() {
106         Assert.assertNull(pceSendingPceRPCs.getGnpyAtoZ());
107     }
108
109     @Test
110     public void getGnpyZtoA() {
111         Assert.assertNull(pceSendingPceRPCs.getGnpyZtoA());
112     }
113
114
115 }