2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021 Nordix Foundation.
4 * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.clamp.controlloop.runtime.instantiation.rest;
24 import static org.assertj.core.api.Assertions.assertThat;
25 import static org.junit.jupiter.api.Assertions.assertEquals;
26 import static org.junit.jupiter.api.Assertions.assertNotNull;
27 import static org.junit.jupiter.api.Assertions.assertNull;
29 import javax.ws.rs.client.Entity;
30 import javax.ws.rs.client.Invocation;
31 import javax.ws.rs.core.Response;
32 import org.junit.jupiter.api.AfterEach;
33 import org.junit.jupiter.api.BeforeAll;
34 import org.junit.jupiter.api.BeforeEach;
35 import org.junit.jupiter.api.Test;
36 import org.junit.jupiter.api.extension.ExtendWith;
37 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop;
38 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoopOrderedState;
39 import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoops;
40 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ParticipantProvider;
41 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.provider.ServiceTemplateProvider;
42 import org.onap.policy.clamp.controlloop.models.controlloop.persistence.repository.ControlLoopRepository;
43 import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.ControlLoopOrderStateResponse;
44 import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.ControlLoopPrimedResponse;
45 import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstancePropertiesResponse;
46 import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationCommand;
47 import org.onap.policy.clamp.controlloop.models.messages.rest.instantiation.InstantiationResponse;
48 import org.onap.policy.clamp.controlloop.runtime.instantiation.ControlLoopInstantiationProvider;
49 import org.onap.policy.clamp.controlloop.runtime.instantiation.InstantiationUtils;
50 import org.onap.policy.clamp.controlloop.runtime.main.rest.InstantiationController;
51 import org.onap.policy.clamp.controlloop.runtime.util.CommonTestData;
52 import org.onap.policy.clamp.controlloop.runtime.util.rest.CommonRestController;
53 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
54 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
55 import org.springframework.beans.factory.annotation.Autowired;
56 import org.springframework.boot.test.context.SpringBootTest;
57 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
58 import org.springframework.boot.web.server.LocalServerPort;
59 import org.springframework.test.context.TestPropertySource;
60 import org.springframework.test.context.junit.jupiter.SpringExtension;
63 * Class to perform unit test of {@link InstantiationController}}.
66 @ExtendWith(SpringExtension.class)
67 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
68 @TestPropertySource(locations = {"classpath:application_test.properties"})
69 class InstantiationControllerTest extends CommonRestController {
71 private static final String ID_NAME = "PMSH_Instance1";
72 private static final String ID_VERSION = "1.2.3";
74 private static final String CL_INSTANTIATION_CREATE_JSON = "src/test/resources/rest/controlloops/ControlLoops.json";
76 private static final String CL_INSTANTIATION_UPDATE_JSON =
77 "src/test/resources/rest/controlloops/ControlLoopsUpdate.json";
79 private static final String CL_INSTANTIATION_CHANGE_STATE_JSON =
80 "src/test/resources/rest/controlloops/PassiveCommand.json";
82 private static final String TOSCA_TEMPLATE_YAML =
83 "src/test/resources/rest/servicetemplates/pmsh_multiple_cl_tosca.yaml";
85 private static final String INSTANTIATION_ENDPOINT = "instantiation";
86 private static final String INSTANTIATION_COMMAND_ENDPOINT = "instantiation/command";
87 private static final String PRIMING_ENDPOINT = "controlLoopPriming";
88 private static final String INSTANTIATION_PROPERTIES = "instanceProperties";
89 private static final String INSTANTIATION_STATE = "instantiationState";
91 private static ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate();
94 private ControlLoopRepository controlLoopRepository;
97 private ServiceTemplateProvider serviceTemplateProvider;
100 private ControlLoopInstantiationProvider instantiationProvider;
103 private ParticipantProvider participantProvider;
106 private int randomServerPort;
109 public static void setUpBeforeClass() throws Exception {
110 serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_TEMPLATE_YAML);
114 public void populateDb() throws Exception {
119 public void setUpPort() {
120 super.setHttpPrefix(randomServerPort);
124 public void cleanDatabase() throws Exception {
129 void testSwagger() throws Exception {
130 super.testSwagger(INSTANTIATION_ENDPOINT);
134 void testCreate_Unauthorized() throws Exception {
135 ControlLoops controlLoops =
136 InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Unauthorized");
138 assertUnauthorizedPost(INSTANTIATION_ENDPOINT, Entity.json(controlLoops));
142 void testQuery_Unauthorized() throws Exception {
143 assertUnauthorizedGet(INSTANTIATION_ENDPOINT);
147 void testUpdate_Unauthorized() throws Exception {
148 ControlLoops controlLoops =
149 InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_UPDATE_JSON, "Unauthorized");
151 assertUnauthorizedPut(INSTANTIATION_ENDPOINT, Entity.json(controlLoops));
155 void testDelete_Unauthorized() throws Exception {
156 assertUnauthorizedDelete(INSTANTIATION_ENDPOINT);
160 void testCommand_Unauthorized() throws Exception {
161 InstantiationCommand instantiationCommand = InstantiationUtils
162 .getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Unauthorized");
164 assertUnauthorizedPut(INSTANTIATION_COMMAND_ENDPOINT, Entity.json(instantiationCommand));
168 void testCreate() throws Exception {
170 ControlLoops controlLoopsFromRsc =
171 InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Create");
173 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
174 Response resp = invocationBuilder.post(Entity.json(controlLoopsFromRsc));
175 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
176 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
177 InstantiationUtils.assertInstantiationResponse(instResponse, controlLoopsFromRsc);
179 for (ControlLoop controlLoopFromRsc : controlLoopsFromRsc.getControlLoopList()) {
180 ControlLoops controlLoopsFromDb = instantiationProvider
181 .getControlLoops(controlLoopFromRsc.getKey().getName(), controlLoopFromRsc.getKey().getVersion());
183 assertNotNull(controlLoopsFromDb);
184 assertThat(controlLoopsFromDb.getControlLoopList()).hasSize(1);
185 assertEquals(controlLoopFromRsc, controlLoopsFromDb.getControlLoopList().get(0));
189 super.sendRequest(PRIMING_ENDPOINT + "?name=" + "PMSHInstance0Create" + "&version=" + "1.0.1");
190 Response rawresp = invocationBuilder.buildGet().invoke();
191 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
192 ControlLoopPrimedResponse primResponse = rawresp.readEntity(ControlLoopPrimedResponse.class);
193 assertEquals(false, primResponse.getPrimedControlLoopsList().get(0).isPrimed());
197 void testCreateBadRequest() throws Exception {
199 ControlLoops controlLoopsFromRsc =
200 InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "CreateBadRequest");
202 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
203 Response resp = invocationBuilder.post(Entity.json(controlLoopsFromRsc));
204 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
206 // testing Bad Request: CL already defined
207 resp = invocationBuilder.post(Entity.json(controlLoopsFromRsc));
208 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
209 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
210 assertNotNull(instResponse.getErrorDetails());
211 assertNull(instResponse.getAffectedControlLoops());
215 void testQuery_NoResultWithThisName() throws Exception {
216 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT + "?name=noResultWithThisName");
217 Response rawresp = invocationBuilder.buildGet().invoke();
218 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
219 ControlLoops resp = rawresp.readEntity(ControlLoops.class);
220 assertThat(resp.getControlLoopList()).isEmpty();
224 void testQuery() throws Exception {
226 var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Query");
227 instantiationProvider.createControlLoops(controlLoops);
229 for (ControlLoop controlLoopFromRsc : controlLoops.getControlLoopList()) {
230 Invocation.Builder invocationBuilder =
231 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + controlLoopFromRsc.getKey().getName());
232 Response rawresp = invocationBuilder.buildGet().invoke();
233 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
234 ControlLoops controlLoopsQuery = rawresp.readEntity(ControlLoops.class);
235 assertNotNull(controlLoopsQuery);
236 assertThat(controlLoopsQuery.getControlLoopList()).hasSize(1);
237 assertEquals(controlLoopFromRsc, controlLoopsQuery.getControlLoopList().get(0));
242 void testUpdate() throws Exception {
244 ControlLoops controlLoopsCreate =
245 InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Update");
247 var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_UPDATE_JSON, "Update");
248 instantiationProvider.createControlLoops(controlLoopsCreate);
250 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
251 Response resp = invocationBuilder.put(Entity.json(controlLoops));
252 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
254 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
255 InstantiationUtils.assertInstantiationResponse(instResponse, controlLoops);
257 for (ControlLoop controlLoopUpdate : controlLoops.getControlLoopList()) {
258 ControlLoops controlLoopsFromDb = instantiationProvider
259 .getControlLoops(controlLoopUpdate.getKey().getName(), controlLoopUpdate.getKey().getVersion());
261 assertNotNull(controlLoopsFromDb);
262 assertThat(controlLoopsFromDb.getControlLoopList()).hasSize(1);
263 assertEquals(controlLoopUpdate, controlLoopsFromDb.getControlLoopList().get(0));
268 void testDelete_NoResultWithThisName() throws Exception {
269 Invocation.Builder invocationBuilder =
270 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=noResultWithThisName&version=1.0.1");
271 Response resp = invocationBuilder.delete();
272 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus());
273 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
274 assertNotNull(instResponse.getErrorDetails());
275 assertNull(instResponse.getAffectedControlLoops());
279 void testDelete() throws Exception {
281 ControlLoops controlLoopsFromRsc =
282 InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Delete");
284 instantiationProvider.createControlLoops(controlLoopsFromRsc);
286 for (ControlLoop controlLoopFromRsc : controlLoopsFromRsc.getControlLoopList()) {
287 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT + "?name="
288 + controlLoopFromRsc.getKey().getName() + "&version=" + controlLoopFromRsc.getKey().getVersion());
289 Response resp = invocationBuilder.delete();
290 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
291 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
292 InstantiationUtils.assertInstantiationResponse(instResponse, controlLoopFromRsc);
294 ControlLoops controlLoopsFromDb = instantiationProvider
295 .getControlLoops(controlLoopFromRsc.getKey().getName(), controlLoopFromRsc.getKey().getVersion());
296 assertThat(controlLoopsFromDb.getControlLoopList()).isEmpty();
301 void testDeleteBadRequest() throws Exception {
303 ControlLoops controlLoopsFromRsc =
304 InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "DelBadRequest");
306 instantiationProvider.createControlLoops(controlLoopsFromRsc);
308 for (ControlLoop controlLoopFromRsc : controlLoopsFromRsc.getControlLoopList()) {
309 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT + "?name="
310 + controlLoopFromRsc.getKey().getName());
311 Response resp = invocationBuilder.delete();
312 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
317 void testDeleteInstanceProperties() throws Exception {
318 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
319 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
320 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
322 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME + "&version=" + ID_VERSION);
323 resp = invocationBuilder.delete();
324 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
325 var instanceResponse = resp.readEntity(InstantiationResponse.class);
326 assertEquals(ID_NAME, instanceResponse.getAffectedControlLoops().get(0).getName());
327 ControlLoops controlLoopsGet = instantiationProvider.getControlLoops(ID_NAME, ID_VERSION);
328 assertThat(controlLoopsGet.getControlLoopList()).isEmpty();
332 void testDeleteInstancePropertiesBadRequest() throws Exception {
333 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
334 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
335 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
337 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME);
338 resp = invocationBuilder.delete();
339 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
343 void testDeleteInstancePropertiesPassiveMode() throws Exception {
344 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
345 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
346 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
348 var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Command");
349 instantiationProvider.createControlLoops(controlLoops);
351 var participants = CommonTestData.createParticipants();
352 for (var participant : participants) {
353 participantProvider.saveParticipant(participant);
356 InstantiationCommand command =
357 InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Command");
359 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
360 resp = invocationBuilder.put(Entity.json(command));
361 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
362 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
363 InstantiationUtils.assertInstantiationResponse(instResponse, command);
365 // check passive state on DB and delete properties
366 for (ToscaConceptIdentifier toscaConceptIdentifier : command.getControlLoopIdentifierList()) {
367 ControlLoops controlLoopsGet = instantiationProvider.getControlLoops(toscaConceptIdentifier.getName(),
368 toscaConceptIdentifier.getVersion());
369 assertThat(controlLoopsGet.getControlLoopList()).hasSize(1);
370 assertEquals(command.getOrderedState(), controlLoopsGet.getControlLoopList().get(0).getOrderedState());
372 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name="
373 + toscaConceptIdentifier.getName() + "&version=" + toscaConceptIdentifier.getVersion());
374 resp = invocationBuilder.delete();
375 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
380 void testCommand_NotFound1() throws Exception {
381 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
382 Response resp = invocationBuilder.put(Entity.json(new InstantiationCommand()));
383 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
387 void testCommand_NotFound2() throws Exception {
388 InstantiationCommand command =
389 InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Command");
390 command.setOrderedState(null);
392 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
393 Response resp = invocationBuilder.put(Entity.json(command));
394 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
398 void testCommand() throws Exception {
399 var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON, "Command");
400 instantiationProvider.createControlLoops(controlLoops);
402 var participants = CommonTestData.createParticipants();
403 for (var participant : participants) {
404 participantProvider.saveParticipant(participant);
407 InstantiationCommand command =
408 InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON, "Command");
410 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
411 Response resp = invocationBuilder.put(Entity.json(command));
412 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
413 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
414 InstantiationUtils.assertInstantiationResponse(instResponse, command);
416 // check passive state on DB
417 for (ToscaConceptIdentifier toscaConceptIdentifier : command.getControlLoopIdentifierList()) {
418 ControlLoops controlLoopsGet = instantiationProvider.getControlLoops(toscaConceptIdentifier.getName(),
419 toscaConceptIdentifier.getVersion());
420 assertThat(controlLoopsGet.getControlLoopList()).hasSize(1);
421 assertEquals(command.getOrderedState(), controlLoopsGet.getControlLoopList().get(0).getOrderedState());
426 void testIntanceProperties() throws Exception {
427 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
428 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
429 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
430 var instancePropertyList = resp.readEntity(InstancePropertiesResponse.class);
431 assertNull(instancePropertyList.getErrorDetails());
432 var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
433 assertEquals(id, instancePropertyList.getAffectedInstanceProperties().get(0));
435 invocationBuilder = super.sendRequest(INSTANTIATION_STATE + "?name=" + ID_NAME + "&version=" + ID_VERSION);
436 resp = invocationBuilder.buildGet().invoke();
437 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
438 var instanceOrderState = resp.readEntity(ControlLoopOrderStateResponse.class);
439 assertEquals(ControlLoopOrderedState.UNINITIALISED, instanceOrderState.getOrderedState());
440 assertEquals(ID_NAME, instanceOrderState.getControlLoopIdentifierList().get(0).getName());
441 ControlLoops controlLoopsGet = instantiationProvider.getControlLoops(ID_NAME, ID_VERSION);
442 assertThat(controlLoopsGet.getControlLoopList()).hasSize(1);
444 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME + "&version=" + ID_VERSION);
445 resp = invocationBuilder.delete();
446 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
447 var instanceResponse = resp.readEntity(InstantiationResponse.class);
448 assertEquals(ID_NAME, instanceResponse.getAffectedControlLoops().get(0).getName());
449 controlLoopsGet = instantiationProvider.getControlLoops(ID_NAME, ID_VERSION);
450 assertThat(controlLoopsGet.getControlLoopList()).isEmpty();
454 void testChangeOrderStateFromUninitializedPassiveMode() throws Exception {
455 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
456 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
457 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
459 var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON,
461 instantiationProvider.createControlLoops(controlLoops);
463 var participants = CommonTestData.createParticipants();
464 for (var participant : participants) {
465 participantProvider.saveParticipant(participant);
468 InstantiationCommand command =
469 InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON,
472 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
473 resp = invocationBuilder.put(Entity.json(command));
474 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
475 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
476 InstantiationUtils.assertInstantiationResponse(instResponse, command);
480 void testChangeOrderStateWithoutRegisteredParticipants() throws Exception {
481 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
482 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
483 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
485 var controlLoops = InstantiationUtils.getControlLoopsFromResource(CL_INSTANTIATION_CREATE_JSON,
487 instantiationProvider.createControlLoops(controlLoops);
489 InstantiationCommand command =
490 InstantiationUtils.getInstantiationCommandFromResource(CL_INSTANTIATION_CHANGE_STATE_JSON,
493 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
494 resp = invocationBuilder.put(Entity.json(command));
495 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
498 private synchronized void deleteEntryInDB() throws Exception {
499 controlLoopRepository.deleteAll();
500 var list = serviceTemplateProvider.getAllServiceTemplates();
501 if (!list.isEmpty()) {
502 serviceTemplateProvider.deleteServiceTemplate(list.get(0).getName(), list.get(0).getVersion());
506 private synchronized void createEntryInDB() throws Exception {
508 serviceTemplateProvider.createServiceTemplate(serviceTemplate);