2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2021-2022 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.acm.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.assertFalse;
27 import static org.junit.jupiter.api.Assertions.assertNotNull;
28 import static org.junit.jupiter.api.Assertions.assertNull;
29 import static org.onap.policy.clamp.acm.runtime.util.CommonTestData.TOSCA_SERVICE_TEMPLATE_YAML;
31 import javax.ws.rs.client.Entity;
32 import javax.ws.rs.client.Invocation;
33 import javax.ws.rs.core.Response;
34 import org.junit.jupiter.api.AfterEach;
35 import org.junit.jupiter.api.BeforeAll;
36 import org.junit.jupiter.api.BeforeEach;
37 import org.junit.jupiter.api.Test;
38 import org.junit.jupiter.api.extension.ExtendWith;
39 import org.onap.policy.clamp.acm.runtime.instantiation.AutomationCompositionInstantiationProvider;
40 import org.onap.policy.clamp.acm.runtime.instantiation.InstantiationUtils;
41 import org.onap.policy.clamp.acm.runtime.main.rest.InstantiationController;
42 import org.onap.policy.clamp.acm.runtime.util.CommonTestData;
43 import org.onap.policy.clamp.acm.runtime.util.rest.CommonRestController;
44 import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
45 import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
46 import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
47 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.AutomationCompositionOrderStateResponse;
48 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.AutomationCompositionPrimedResponse;
49 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstancePropertiesResponse;
50 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationCommand;
51 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse;
52 import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider;
53 import org.onap.policy.clamp.models.acm.persistence.provider.ServiceTemplateProvider;
54 import org.onap.policy.clamp.models.acm.persistence.repository.AutomationCompositionRepository;
55 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
56 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
57 import org.springframework.beans.factory.annotation.Autowired;
58 import org.springframework.boot.test.context.SpringBootTest;
59 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
60 import org.springframework.boot.web.server.LocalServerPort;
61 import org.springframework.test.context.ActiveProfiles;
62 import org.springframework.test.context.junit.jupiter.SpringExtension;
65 * Class to perform unit test of {@link InstantiationController}}.
68 @ExtendWith(SpringExtension.class)
69 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
70 @ActiveProfiles("test")
71 class InstantiationControllerTest extends CommonRestController {
73 private static final String ID_NAME = "PMSH_Test_Instance";
74 private static final String ID_VERSION = "1.2.3";
76 private static final String AC_INSTANTIATION_CREATE_JSON =
77 "src/test/resources/rest/acm/AutomationCompositions.json";
79 private static final String AC_INSTANTIATION_UPDATE_JSON =
80 "src/test/resources/rest/acm/AutomationCompositionsUpdate.json";
82 private static final String AC_INSTANTIATION_CHANGE_STATE_JSON = "src/test/resources/rest/acm/PassiveCommand.json";
84 private static final String INSTANTIATION_ENDPOINT = "instantiation";
85 private static final String INSTANTIATION_COMMAND_ENDPOINT = "instantiation/command";
86 private static final String PRIMING_ENDPOINT = "automationCompositionPriming";
87 private static final String INSTANTIATION_PROPERTIES = "instanceProperties";
88 private static final String INSTANTIATION_STATE = "instantiationState";
90 private static ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate();
93 private AutomationCompositionRepository automationCompositionRepository;
96 private ServiceTemplateProvider serviceTemplateProvider;
99 private AutomationCompositionInstantiationProvider instantiationProvider;
102 private ParticipantProvider participantProvider;
105 private int randomServerPort;
108 public static void setUpBeforeClass() {
109 serviceTemplate = InstantiationUtils.getToscaServiceTemplate(TOSCA_SERVICE_TEMPLATE_YAML);
113 public void populateDb() throws Exception {
118 public void setUpPort() {
119 super.setHttpPrefix(randomServerPort);
123 public void cleanDatabase() throws Exception {
129 super.testSwagger(INSTANTIATION_ENDPOINT);
133 void testCreate_Unauthorized() throws Exception {
134 AutomationCompositions automationCompositions =
135 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Unauthorized");
137 assertUnauthorizedPost(INSTANTIATION_ENDPOINT, Entity.json(automationCompositions));
141 void testQuery_Unauthorized() {
142 assertUnauthorizedGet(INSTANTIATION_ENDPOINT);
146 void testUpdate_Unauthorized() throws Exception {
147 AutomationCompositions automationCompositions =
148 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Unauthorized");
150 assertUnauthorizedPut(INSTANTIATION_ENDPOINT, Entity.json(automationCompositions));
154 void testDelete_Unauthorized() {
155 assertUnauthorizedDelete(INSTANTIATION_ENDPOINT);
159 void testCommand_Unauthorized() throws Exception {
160 InstantiationCommand instantiationCommand =
161 InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Unauthorized");
163 assertUnauthorizedPut(INSTANTIATION_COMMAND_ENDPOINT, Entity.json(instantiationCommand));
167 void testCreate() throws Exception {
169 AutomationCompositions automationCompositionsFromRsc =
170 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Create");
172 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
173 Response resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc));
174 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
175 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
176 InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositionsFromRsc);
178 for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc
179 .getAutomationCompositionList()) {
180 AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions(
181 automationCompositionFromRsc.getKey().getName(), automationCompositionFromRsc.getKey().getVersion());
183 assertNotNull(automationCompositionsFromDb);
184 assertThat(automationCompositionsFromDb.getAutomationCompositionList()).hasSize(1);
185 assertEquals(automationCompositionFromRsc,
186 automationCompositionsFromDb.getAutomationCompositionList().get(0));
190 super.sendRequest(PRIMING_ENDPOINT + "?name=" + "PMSHInstance0Create" + "&version=" + "1.0.1");
191 Response rawresp = invocationBuilder.buildGet().invoke();
192 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
193 AutomationCompositionPrimedResponse primResponse =
194 rawresp.readEntity(AutomationCompositionPrimedResponse.class);
195 assertFalse(primResponse.getPrimedAutomationCompositionsList().get(0).isPrimed());
199 void testCreateBadRequest() throws Exception {
201 AutomationCompositions automationCompositionsFromRsc =
202 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "CreateBadRequest");
204 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
205 Response resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc));
206 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
208 // testing Bad Request: AC already defined
209 resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc));
210 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
211 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
212 assertNotNull(instResponse.getErrorDetails());
213 assertNull(instResponse.getAffectedAutomationCompositions());
217 void testQuery_NoResultWithThisName() {
218 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT + "?name=noResultWithThisName");
219 Response rawresp = invocationBuilder.buildGet().invoke();
220 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
221 AutomationCompositions resp = rawresp.readEntity(AutomationCompositions.class);
222 assertThat(resp.getAutomationCompositionList()).isEmpty();
226 void testQuery() throws Exception {
228 var automationCompositions =
229 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Query");
230 instantiationProvider.createAutomationCompositions(automationCompositions);
232 for (AutomationComposition automationCompositionFromRsc : automationCompositions
233 .getAutomationCompositionList()) {
234 Invocation.Builder invocationBuilder =
235 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName());
236 Response rawresp = invocationBuilder.buildGet().invoke();
237 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
238 AutomationCompositions automationCompositionsQuery = rawresp.readEntity(AutomationCompositions.class);
239 assertNotNull(automationCompositionsQuery);
240 assertThat(automationCompositionsQuery.getAutomationCompositionList()).hasSize(1);
241 assertEquals(automationCompositionFromRsc,
242 automationCompositionsQuery.getAutomationCompositionList().get(0));
247 void testUpdate() throws Exception {
249 AutomationCompositions automationCompositionsCreate =
250 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Update");
252 var automationCompositions =
253 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Update");
254 instantiationProvider.createAutomationCompositions(automationCompositionsCreate);
256 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
257 Response resp = invocationBuilder.put(Entity.json(automationCompositions));
258 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
260 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
261 InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositions);
263 for (AutomationComposition automationCompositionUpdate : automationCompositions
264 .getAutomationCompositionList()) {
265 AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions(
266 automationCompositionUpdate.getKey().getName(), automationCompositionUpdate.getKey().getVersion());
268 assertNotNull(automationCompositionsFromDb);
269 assertThat(automationCompositionsFromDb.getAutomationCompositionList()).hasSize(1);
270 assertEquals(automationCompositionUpdate,
271 automationCompositionsFromDb.getAutomationCompositionList().get(0));
276 void testDelete_NoResultWithThisName() {
277 Invocation.Builder invocationBuilder =
278 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=noResultWithThisName&version=1.0.1");
279 Response resp = invocationBuilder.delete();
280 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus());
281 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
282 assertNotNull(instResponse.getErrorDetails());
283 assertNull(instResponse.getAffectedAutomationCompositions());
287 void testDelete() throws Exception {
289 AutomationCompositions automationCompositionsFromRsc =
290 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Delete");
292 instantiationProvider.createAutomationCompositions(automationCompositionsFromRsc);
294 for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc
295 .getAutomationCompositionList()) {
296 Invocation.Builder invocationBuilder =
297 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName()
298 + "&version=" + automationCompositionFromRsc.getKey().getVersion());
299 Response resp = invocationBuilder.delete();
300 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
301 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
302 InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositionFromRsc);
304 AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions(
305 automationCompositionFromRsc.getKey().getName(), automationCompositionFromRsc.getKey().getVersion());
306 assertThat(automationCompositionsFromDb.getAutomationCompositionList()).isEmpty();
311 void testDeleteBadRequest() throws Exception {
313 AutomationCompositions automationCompositionsFromRsc =
314 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "DelBadRequest");
316 instantiationProvider.createAutomationCompositions(automationCompositionsFromRsc);
318 for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc
319 .getAutomationCompositionList()) {
320 Invocation.Builder invocationBuilder =
321 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName());
322 Response resp = invocationBuilder.delete();
323 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
328 void testCreateInstanceProperties() {
329 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
330 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
331 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
332 var instancePropertyList = resp.readEntity(InstancePropertiesResponse.class);
333 assertNull(instancePropertyList.getErrorDetails());
334 var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
335 assertEquals(id, instancePropertyList.getAffectedInstanceProperties().get(0));
337 invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
338 resp = invocationBuilder.get();
339 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
340 var automationCompositionsGet = resp.readEntity(AutomationCompositions.class);
341 assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1);
345 void testDeleteInstanceProperties() throws Exception {
346 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
347 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
348 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
350 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME + "&version=" + ID_VERSION);
351 resp = invocationBuilder.delete();
352 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
353 var instanceResponse = resp.readEntity(InstantiationResponse.class);
354 assertEquals(ID_NAME, instanceResponse.getAffectedAutomationCompositions().get(0).getName());
355 AutomationCompositions automationCompositionsGet =
356 instantiationProvider.getAutomationCompositions(ID_NAME, ID_VERSION);
357 assertThat(automationCompositionsGet.getAutomationCompositionList()).isEmpty();
361 void testDeleteInstancePropertiesBadRequest() {
362 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
363 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
364 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
366 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME);
367 resp = invocationBuilder.delete();
368 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
372 void testDeleteInstancePropertiesPassiveMode() throws Exception {
373 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
374 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
375 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
377 var automationCompositions =
378 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Command");
379 instantiationProvider.createAutomationCompositions(automationCompositions);
381 var participants = CommonTestData.createParticipants();
382 for (var participant : participants) {
383 participantProvider.saveParticipant(participant);
386 InstantiationCommand command =
387 InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command");
389 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
390 resp = invocationBuilder.put(Entity.json(command));
391 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
392 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
393 InstantiationUtils.assertInstantiationResponse(instResponse, command);
395 // check passive state on DB and delete properties
396 for (ToscaConceptIdentifier toscaConceptIdentifier : command.getAutomationCompositionIdentifierList()) {
397 AutomationCompositions automationCompositionsGet = instantiationProvider
398 .getAutomationCompositions(toscaConceptIdentifier.getName(), toscaConceptIdentifier.getVersion());
399 assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1);
400 assertEquals(command.getOrderedState(),
401 automationCompositionsGet.getAutomationCompositionList().get(0).getOrderedState());
403 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + toscaConceptIdentifier.getName()
404 + "&version=" + toscaConceptIdentifier.getVersion());
405 resp = invocationBuilder.delete();
406 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
411 void testCommand_NotFound1() {
412 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
413 Response resp = invocationBuilder.put(Entity.json(new InstantiationCommand()));
414 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
418 void testCommand_NotFound2() throws Exception {
419 InstantiationCommand command =
420 InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command");
421 command.setOrderedState(null);
423 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
424 Response resp = invocationBuilder.put(Entity.json(command));
425 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
429 void testCommand() throws Exception {
430 var automationCompositions =
431 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Command");
432 instantiationProvider.createAutomationCompositions(automationCompositions);
434 var participants = CommonTestData.createParticipants();
435 for (var participant : participants) {
436 participantProvider.saveParticipant(participant);
439 InstantiationCommand command =
440 InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command");
442 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
443 Response resp = invocationBuilder.put(Entity.json(command));
444 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
445 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
446 InstantiationUtils.assertInstantiationResponse(instResponse, command);
448 // check passive state on DB
449 for (ToscaConceptIdentifier toscaConceptIdentifier : command.getAutomationCompositionIdentifierList()) {
450 AutomationCompositions automationCompositionsGet = instantiationProvider
451 .getAutomationCompositions(toscaConceptIdentifier.getName(), toscaConceptIdentifier.getVersion());
452 assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1);
453 assertEquals(command.getOrderedState(),
454 automationCompositionsGet.getAutomationCompositionList().get(0).getOrderedState());
459 void testIntanceProperties() throws Exception {
460 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
461 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
462 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
463 var instancePropertyList = resp.readEntity(InstancePropertiesResponse.class);
464 assertNull(instancePropertyList.getErrorDetails());
465 var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
466 assertEquals(id, instancePropertyList.getAffectedInstanceProperties().get(0));
468 invocationBuilder = super.sendRequest(INSTANTIATION_STATE + "?name=" + ID_NAME + "&version=" + ID_VERSION);
469 resp = invocationBuilder.buildGet().invoke();
470 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
471 var instanceOrderState = resp.readEntity(AutomationCompositionOrderStateResponse.class);
472 assertEquals(AutomationCompositionOrderedState.UNINITIALISED, instanceOrderState.getOrderedState());
473 assertEquals(ID_NAME, instanceOrderState.getAutomationCompositionIdentifierList().get(0).getName());
474 AutomationCompositions automationCompositionsGet =
475 instantiationProvider.getAutomationCompositions(ID_NAME, ID_VERSION);
476 assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1);
478 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME + "&version=" + ID_VERSION);
479 resp = invocationBuilder.delete();
480 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
481 var instanceResponse = resp.readEntity(InstantiationResponse.class);
482 assertEquals(ID_NAME, instanceResponse.getAffectedAutomationCompositions().get(0).getName());
483 automationCompositionsGet = instantiationProvider.getAutomationCompositions(ID_NAME, ID_VERSION);
484 assertThat(automationCompositionsGet.getAutomationCompositionList()).isEmpty();
488 void testChangeOrderStateFromUninitializedPassiveMode() throws Exception {
489 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
490 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
491 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
493 var automationCompositions =
494 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "CommandPassive");
495 instantiationProvider.createAutomationCompositions(automationCompositions);
497 var participants = CommonTestData.createParticipants();
498 for (var participant : participants) {
499 participantProvider.saveParticipant(participant);
502 InstantiationCommand command = InstantiationUtils
503 .getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "CommandPassive");
505 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
506 resp = invocationBuilder.put(Entity.json(command));
507 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
508 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
509 InstantiationUtils.assertInstantiationResponse(instResponse, command);
513 void testChangeOrderStateWithoutRegisteredParticipants() throws Exception {
514 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
515 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
516 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
518 var automationCompositions =
519 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "CommandPassive");
520 instantiationProvider.createAutomationCompositions(automationCompositions);
522 InstantiationCommand command = InstantiationUtils
523 .getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "CommandPassive");
525 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
526 resp = invocationBuilder.put(Entity.json(command));
527 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
530 private synchronized void deleteEntryInDB() throws Exception {
531 automationCompositionRepository.deleteAll();
532 var list = serviceTemplateProvider.getAllServiceTemplates();
533 if (!list.isEmpty()) {
534 serviceTemplateProvider.deleteServiceTemplate(list.get(0).getName(), list.get(0).getVersion());
538 private synchronized void createEntryInDB() throws Exception {
540 serviceTemplateProvider.createServiceTemplate(serviceTemplate);