2 * Copyright © 2018 Orange, Inc. and others. 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.servicehandler.service;
10 import java.util.Optional;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
16 import org.opendaylight.transportpce.common.OperationResult;
17 import org.opendaylight.transportpce.common.ResponseCodes;
18 import org.opendaylight.transportpce.servicehandler.ServiceInput;
19 import org.opendaylight.transportpce.servicehandler.utils.ServiceDataUtils;
20 import org.opendaylight.transportpce.test.AbstractTest;
21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.PathComputationRequestOutput;
22 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev171017.PathComputationRequestOutputBuilder;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommon;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev161014.State;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInput;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.TempServiceCreateInput;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.Services;
29 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.AToZDirectionBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev171017.path.description.ZToADirectionBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParameters;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.ResponseParametersBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev171016.response.parameters.sp.response.parameters.PathDescriptionBuilder;
36 public class ServiceDataStoreOperationsImplTest extends AbstractTest {
38 private ServiceDataStoreOperationsImpl serviceDataStoreOperations;
42 DataBroker dataBroker = this.getNewDataBroker();
43 this.serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(dataBroker);
47 public void modifyIfServiceNotPresent() {
48 OperationResult result =
49 this.serviceDataStoreOperations.modifyService("service 1", State.InService, State.InService);
50 Assert.assertFalse(result.isSuccess());
51 Assert.assertEquals("Service " + "service 1" + " is not present!", result.getResultMessage());
55 public void writeOrModifyOrDeleteServiceListNotPresentWithNoWriteChoice() {
57 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
58 ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
59 .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
60 .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
61 PathComputationRequestOutput pathComputationRequestOutput = new PathComputationRequestOutputBuilder()
62 .setConfigurationResponseCommon(configurationResponseCommon).build();
63 String result = serviceDataStoreOperations.writeOrModifyOrDeleteServiceList("serviceCreateInput",
64 createInput, pathComputationRequestOutput, 3);
66 Assert.assertEquals("Service is not present ! ", result);
70 public void writeOrModifyOrDeleteServiceListNotPresentWithWriteChoice() {
72 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
73 ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
74 .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
75 .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
76 PathComputationRequestOutput pathComputationRequestOutput = new PathComputationRequestOutputBuilder()
77 .setConfigurationResponseCommon(configurationResponseCommon).build();
78 String result = serviceDataStoreOperations.writeOrModifyOrDeleteServiceList("service 1",
79 createInput, pathComputationRequestOutput, 2);
81 Assert.assertNull(result);
85 public void writeOrModifyOrDeleteServiceListPresentWithModifyChoice() {
86 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
87 ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
88 .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
89 .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
90 PathComputationRequestOutput pathComputationRequestOutput = new PathComputationRequestOutputBuilder()
91 .setConfigurationResponseCommon(configurationResponseCommon).build();
92 OperationResult createOutput = this.serviceDataStoreOperations.createService(createInput);
93 String result = serviceDataStoreOperations.writeOrModifyOrDeleteServiceList("service 1",
94 createInput, pathComputationRequestOutput, 0);
95 Assert.assertNull(result);
99 public void writeOrModifyOrDeleteServiceListPresentWithDeleteChoice() {
100 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
101 ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
102 .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
103 .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
104 PathComputationRequestOutput pathComputationRequestOutput = new PathComputationRequestOutputBuilder()
105 .setConfigurationResponseCommon(configurationResponseCommon).build();
106 OperationResult createOutput = this.serviceDataStoreOperations.createService(createInput);
107 String result = serviceDataStoreOperations.writeOrModifyOrDeleteServiceList("service 1",
108 createInput, pathComputationRequestOutput, 1);
109 Assert.assertNull(result);
113 public void writeOrModifyOrDeleteServiceListPresentWithNoValidChoice() {
114 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
115 ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
116 .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
117 .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
118 PathComputationRequestOutput pathComputationRequestOutput = new PathComputationRequestOutputBuilder()
119 .setConfigurationResponseCommon(configurationResponseCommon).build();
120 OperationResult createOutput = this.serviceDataStoreOperations.createService(createInput);
121 String result = serviceDataStoreOperations.writeOrModifyOrDeleteServiceList("service 1",
122 createInput, pathComputationRequestOutput, 2);
123 Assert.assertNull(result);
128 public void getServiceFromEmptyDataStoreShouldBeEmpty() {
129 Optional<Services> optService = this.serviceDataStoreOperations.getService("service 1");
130 Assert.assertFalse(optService.isPresent());
134 public void createServiceShouldBeSuccessForValidInput() {
135 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
136 OperationResult result = this.serviceDataStoreOperations.createService(createInput);
137 Assert.assertTrue(result.isSuccess());
141 public void getServiceShouldReturnTheCorrectServiceForTheCreatedService() {
142 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
143 this.serviceDataStoreOperations.createService(createInput);
145 Optional<Services> optService = this.serviceDataStoreOperations.getService(createInput.getServiceName());
146 Assert.assertTrue(optService.isPresent());
147 Assert.assertEquals(createInput.getServiceName(), optService.get().getServiceName());
151 public void deleteServiceShouldBeSuccessfulForDeletingService() {
152 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
153 this.serviceDataStoreOperations.createService(createInput);
154 OperationResult result = this.serviceDataStoreOperations.deleteService(createInput.getServiceName());
155 Assert.assertTrue(result.isSuccess());
159 // public void deleteServiceShouldBeFailedIfServiceDoNotExists() {
160 // OperationResult result = this.serviceDataStoreOperations.deleteService("Any service");
161 // Assert.assertFalse(result.isSuccess());
165 public void modifyServiceIsSuccessfulForPresentService() {
166 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
167 this.serviceDataStoreOperations.createService(createInput);
168 OperationResult result = this.serviceDataStoreOperations.modifyService(createInput.getServiceName(),
169 State.InService, State.InService);
170 Assert.assertTrue(result.isSuccess());
174 public void getTempServiceFromEmptyDataStoreShouldBeEmpty() {
175 Optional<org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.temp.service.list
176 .Services> optService = this.serviceDataStoreOperations.getTempService("service 1");
177 Assert.assertFalse(optService.isPresent());
181 public void createTempServiceShouldBeSuccessForValidInput() {
182 TempServiceCreateInput createInput = ServiceDataUtils.buildTempServiceCreateInput();
183 OperationResult result = this.serviceDataStoreOperations.createTempService(createInput);
184 Assert.assertTrue(result.isSuccess());
188 public void getTempServiceShouldReturnTheCorrectTempServiceForTheCreatedService() {
189 TempServiceCreateInput createInput = ServiceDataUtils.buildTempServiceCreateInput();
190 this.serviceDataStoreOperations.createTempService(createInput);
192 Optional<org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.temp.service.list
193 .Services> optService = this.serviceDataStoreOperations.getTempService(createInput.getCommonId());
194 Assert.assertTrue(optService.isPresent());
195 Assert.assertEquals(createInput.getCommonId(), optService.get().getCommonId());
199 public void deleteTempServiceShouldBeSuccessfulForDeletingTempService() {
200 TempServiceCreateInput createInput = ServiceDataUtils.buildTempServiceCreateInput();
201 this.serviceDataStoreOperations.createTempService(createInput);
202 OperationResult result = this.serviceDataStoreOperations.deleteTempService(createInput.getCommonId());
203 Assert.assertTrue(result.isSuccess());
207 public void modifyTempServiceIsSuccessfulForPresentTempService() {
208 TempServiceCreateInput createInput = ServiceDataUtils.buildTempServiceCreateInput();
209 this.serviceDataStoreOperations.createTempService(createInput);
210 OperationResult result = this.serviceDataStoreOperations.modifyTempService(createInput.getCommonId(),
211 State.InService, State.InService);
212 Assert.assertTrue(result.isSuccess());
216 public void createServicePathShouldBeSuccessfulForValidInput() {
217 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
218 this.serviceDataStoreOperations.createService(createInput);
219 ServiceInput serviceInput = new ServiceInput(createInput);
220 ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
221 .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
222 .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
223 ResponseParameters responseParameters = new ResponseParametersBuilder()
224 .setPathDescription(new PathDescriptionBuilder()
225 .setAToZDirection(new AToZDirectionBuilder().setAToZWavelengthNumber(1L).setRate(1L).build())
226 .setZToADirection(new ZToADirectionBuilder().setZToAWavelengthNumber(1L).setRate(1L).build()).build())
228 PathComputationRequestOutput pathComputationRequestOutput = new PathComputationRequestOutputBuilder()
229 .setConfigurationResponseCommon(configurationResponseCommon).setResponseParameters(responseParameters)
231 OperationResult result =
232 this.serviceDataStoreOperations.createServicePath(serviceInput, pathComputationRequestOutput);
233 Assert.assertTrue(result.isSuccess());
237 public void createServicePathShouldFailForInvalidInput() {
238 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
239 this.serviceDataStoreOperations.createService(createInput);
240 ServiceInput serviceInput = new ServiceInput(createInput);
241 ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
242 .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
243 .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
244 ResponseParameters responseParameters = new ResponseParametersBuilder().build();
245 PathComputationRequestOutput pathComputationRequestOutput = new PathComputationRequestOutputBuilder()
246 .setConfigurationResponseCommon(configurationResponseCommon).setResponseParameters(responseParameters)
248 OperationResult result =
249 this.serviceDataStoreOperations.createServicePath(serviceInput, pathComputationRequestOutput);
250 Assert.assertFalse(result.isSuccess());
254 public void deleteServicePathShouldBeSuccessForDeletingServicePath() {
255 ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput();
256 this.serviceDataStoreOperations.createService(createInput);
257 ServiceInput serviceInput = new ServiceInput(createInput);
258 ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
259 .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
260 .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
261 ResponseParameters responseParameters = new ResponseParametersBuilder()
262 .setPathDescription(new PathDescriptionBuilder()
263 .setAToZDirection(new AToZDirectionBuilder().setAToZWavelengthNumber(1L).setRate(1L).build())
264 .setZToADirection(new ZToADirectionBuilder().setZToAWavelengthNumber(1L).setRate(1L).build()).build())
266 PathComputationRequestOutput pathComputationRequestOutput = new PathComputationRequestOutputBuilder()
267 .setConfigurationResponseCommon(configurationResponseCommon).setResponseParameters(responseParameters)
269 this.serviceDataStoreOperations.createServicePath(serviceInput, pathComputationRequestOutput);
271 OperationResult result = this.serviceDataStoreOperations.deleteServicePath(serviceInput.getServiceName());
272 Assert.assertTrue(result.isSuccess());