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.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.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.acm.runtime.instantiation.AutomationCompositionInstantiationProvider;
38 import org.onap.policy.clamp.acm.runtime.instantiation.InstantiationUtils;
39 import org.onap.policy.clamp.acm.runtime.main.rest.InstantiationController;
40 import org.onap.policy.clamp.acm.runtime.util.CommonTestData;
41 import org.onap.policy.clamp.acm.runtime.util.rest.CommonRestController;
42 import org.onap.policy.clamp.models.acm.concepts.AutomationComposition;
43 import org.onap.policy.clamp.models.acm.concepts.AutomationCompositionOrderedState;
44 import org.onap.policy.clamp.models.acm.concepts.AutomationCompositions;
45 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.AutomationCompositionOrderStateResponse;
46 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.AutomationCompositionPrimedResponse;
47 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstancePropertiesResponse;
48 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationCommand;
49 import org.onap.policy.clamp.models.acm.messages.rest.instantiation.InstantiationResponse;
50 import org.onap.policy.clamp.models.acm.persistence.provider.ParticipantProvider;
51 import org.onap.policy.clamp.models.acm.persistence.provider.ServiceTemplateProvider;
52 import org.onap.policy.clamp.models.acm.persistence.repository.AutomationCompositionRepository;
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_Test_Instance";
72 private static final String ID_VERSION = "1.2.3";
74 private static final String AC_INSTANTIATION_CREATE_JSON =
75 "src/test/resources/rest/acm/AutomationCompositions.json";
77 private static final String AC_INSTANTIATION_UPDATE_JSON =
78 "src/test/resources/rest/acm/AutomationCompositionsUpdate.json";
80 private static final String AC_INSTANTIATION_CHANGE_STATE_JSON = "src/test/resources/rest/acm/PassiveCommand.json";
82 private static final String TOSCA_TEMPLATE_YAML =
83 "src/test/resources/rest/servicetemplates/pmsh_multiple_ac_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 = "automationCompositionPriming";
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 AutomationCompositionRepository automationCompositionRepository;
97 private ServiceTemplateProvider serviceTemplateProvider;
100 private AutomationCompositionInstantiationProvider 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 AutomationCompositions automationCompositions =
136 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Unauthorized");
138 assertUnauthorizedPost(INSTANTIATION_ENDPOINT, Entity.json(automationCompositions));
142 void testQuery_Unauthorized() throws Exception {
143 assertUnauthorizedGet(INSTANTIATION_ENDPOINT);
147 void testUpdate_Unauthorized() throws Exception {
148 AutomationCompositions automationCompositions =
149 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Unauthorized");
151 assertUnauthorizedPut(INSTANTIATION_ENDPOINT, Entity.json(automationCompositions));
155 void testDelete_Unauthorized() throws Exception {
156 assertUnauthorizedDelete(INSTANTIATION_ENDPOINT);
160 void testCommand_Unauthorized() throws Exception {
161 InstantiationCommand instantiationCommand =
162 InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Unauthorized");
164 assertUnauthorizedPut(INSTANTIATION_COMMAND_ENDPOINT, Entity.json(instantiationCommand));
168 void testCreate() throws Exception {
170 AutomationCompositions automationCompositionsFromRsc =
171 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Create");
173 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
174 Response resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc));
175 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
176 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
177 InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositionsFromRsc);
179 for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc
180 .getAutomationCompositionList()) {
181 AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions(
182 automationCompositionFromRsc.getKey().getName(), automationCompositionFromRsc.getKey().getVersion());
184 assertNotNull(automationCompositionsFromDb);
185 assertThat(automationCompositionsFromDb.getAutomationCompositionList()).hasSize(1);
186 assertEquals(automationCompositionFromRsc,
187 automationCompositionsFromDb.getAutomationCompositionList().get(0));
191 super.sendRequest(PRIMING_ENDPOINT + "?name=" + "PMSHInstance0Create" + "&version=" + "1.0.1");
192 Response rawresp = invocationBuilder.buildGet().invoke();
193 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
194 AutomationCompositionPrimedResponse primResponse =
195 rawresp.readEntity(AutomationCompositionPrimedResponse.class);
196 assertEquals(false, primResponse.getPrimedAutomationCompositionsList().get(0).isPrimed());
200 void testCreateBadRequest() throws Exception {
202 AutomationCompositions automationCompositionsFromRsc =
203 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "CreateBadRequest");
205 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
206 Response resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc));
207 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
209 // testing Bad Request: AC already defined
210 resp = invocationBuilder.post(Entity.json(automationCompositionsFromRsc));
211 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
212 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
213 assertNotNull(instResponse.getErrorDetails());
214 assertNull(instResponse.getAffectedAutomationCompositions());
218 void testQuery_NoResultWithThisName() throws Exception {
219 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT + "?name=noResultWithThisName");
220 Response rawresp = invocationBuilder.buildGet().invoke();
221 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
222 AutomationCompositions resp = rawresp.readEntity(AutomationCompositions.class);
223 assertThat(resp.getAutomationCompositionList()).isEmpty();
227 void testQuery() throws Exception {
229 var automationCompositions =
230 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Query");
231 instantiationProvider.createAutomationCompositions(automationCompositions);
233 for (AutomationComposition automationCompositionFromRsc : automationCompositions
234 .getAutomationCompositionList()) {
235 Invocation.Builder invocationBuilder =
236 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName());
237 Response rawresp = invocationBuilder.buildGet().invoke();
238 assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
239 AutomationCompositions automationCompositionsQuery = rawresp.readEntity(AutomationCompositions.class);
240 assertNotNull(automationCompositionsQuery);
241 assertThat(automationCompositionsQuery.getAutomationCompositionList()).hasSize(1);
242 assertEquals(automationCompositionFromRsc,
243 automationCompositionsQuery.getAutomationCompositionList().get(0));
248 void testUpdate() throws Exception {
250 AutomationCompositions automationCompositionsCreate =
251 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Update");
253 var automationCompositions =
254 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_UPDATE_JSON, "Update");
255 instantiationProvider.createAutomationCompositions(automationCompositionsCreate);
257 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
258 Response resp = invocationBuilder.put(Entity.json(automationCompositions));
259 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
261 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
262 InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositions);
264 for (AutomationComposition automationCompositionUpdate : automationCompositions
265 .getAutomationCompositionList()) {
266 AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions(
267 automationCompositionUpdate.getKey().getName(), automationCompositionUpdate.getKey().getVersion());
269 assertNotNull(automationCompositionsFromDb);
270 assertThat(automationCompositionsFromDb.getAutomationCompositionList()).hasSize(1);
271 assertEquals(automationCompositionUpdate,
272 automationCompositionsFromDb.getAutomationCompositionList().get(0));
277 void testDelete_NoResultWithThisName() throws Exception {
278 Invocation.Builder invocationBuilder =
279 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=noResultWithThisName&version=1.0.1");
280 Response resp = invocationBuilder.delete();
281 assertEquals(Response.Status.NOT_FOUND.getStatusCode(), resp.getStatus());
282 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
283 assertNotNull(instResponse.getErrorDetails());
284 assertNull(instResponse.getAffectedAutomationCompositions());
288 void testDelete() throws Exception {
290 AutomationCompositions automationCompositionsFromRsc =
291 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Delete");
293 instantiationProvider.createAutomationCompositions(automationCompositionsFromRsc);
295 for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc
296 .getAutomationCompositionList()) {
297 Invocation.Builder invocationBuilder =
298 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName()
299 + "&version=" + automationCompositionFromRsc.getKey().getVersion());
300 Response resp = invocationBuilder.delete();
301 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
302 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
303 InstantiationUtils.assertInstantiationResponse(instResponse, automationCompositionFromRsc);
305 AutomationCompositions automationCompositionsFromDb = instantiationProvider.getAutomationCompositions(
306 automationCompositionFromRsc.getKey().getName(), automationCompositionFromRsc.getKey().getVersion());
307 assertThat(automationCompositionsFromDb.getAutomationCompositionList()).isEmpty();
312 void testDeleteBadRequest() throws Exception {
314 AutomationCompositions automationCompositionsFromRsc =
315 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "DelBadRequest");
317 instantiationProvider.createAutomationCompositions(automationCompositionsFromRsc);
319 for (AutomationComposition automationCompositionFromRsc : automationCompositionsFromRsc
320 .getAutomationCompositionList()) {
321 Invocation.Builder invocationBuilder =
322 super.sendRequest(INSTANTIATION_ENDPOINT + "?name=" + automationCompositionFromRsc.getKey().getName());
323 Response resp = invocationBuilder.delete();
324 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
329 void testCreateInstanceProperties() throws Exception {
330 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
331 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
332 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
333 var instancePropertyList = resp.readEntity(InstancePropertiesResponse.class);
334 assertNull(instancePropertyList.getErrorDetails());
335 var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
336 assertEquals(id, instancePropertyList.getAffectedInstanceProperties().get(0));
338 invocationBuilder = super.sendRequest(INSTANTIATION_ENDPOINT);
339 resp = invocationBuilder.get();
340 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
341 var automationCompositionsGet = resp.readEntity(AutomationCompositions.class);
342 assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1);
346 void testDeleteInstanceProperties() throws Exception {
347 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
348 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
349 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
351 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME + "&version=" + ID_VERSION);
352 resp = invocationBuilder.delete();
353 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
354 var instanceResponse = resp.readEntity(InstantiationResponse.class);
355 assertEquals(ID_NAME, instanceResponse.getAffectedAutomationCompositions().get(0).getName());
356 AutomationCompositions automationCompositionsGet =
357 instantiationProvider.getAutomationCompositions(ID_NAME, ID_VERSION);
358 assertThat(automationCompositionsGet.getAutomationCompositionList()).isEmpty();
362 void testDeleteInstancePropertiesBadRequest() throws Exception {
363 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
364 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
365 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
367 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME);
368 resp = invocationBuilder.delete();
369 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
373 void testDeleteInstancePropertiesPassiveMode() throws Exception {
374 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
375 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
376 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
378 var automationCompositions =
379 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Command");
380 instantiationProvider.createAutomationCompositions(automationCompositions);
382 var participants = CommonTestData.createParticipants();
383 for (var participant : participants) {
384 participantProvider.saveParticipant(participant);
387 InstantiationCommand command =
388 InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command");
390 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
391 resp = invocationBuilder.put(Entity.json(command));
392 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
393 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
394 InstantiationUtils.assertInstantiationResponse(instResponse, command);
396 // check passive state on DB and delete properties
397 for (ToscaConceptIdentifier toscaConceptIdentifier : command.getAutomationCompositionIdentifierList()) {
398 AutomationCompositions automationCompositionsGet = instantiationProvider
399 .getAutomationCompositions(toscaConceptIdentifier.getName(), toscaConceptIdentifier.getVersion());
400 assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1);
401 assertEquals(command.getOrderedState(),
402 automationCompositionsGet.getAutomationCompositionList().get(0).getOrderedState());
404 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + toscaConceptIdentifier.getName()
405 + "&version=" + toscaConceptIdentifier.getVersion());
406 resp = invocationBuilder.delete();
407 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
412 void testCommand_NotFound1() throws Exception {
413 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
414 Response resp = invocationBuilder.put(Entity.json(new InstantiationCommand()));
415 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
419 void testCommand_NotFound2() throws Exception {
420 InstantiationCommand command =
421 InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command");
422 command.setOrderedState(null);
424 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
425 Response resp = invocationBuilder.put(Entity.json(command));
426 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
430 void testCommand() throws Exception {
431 var automationCompositions =
432 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "Command");
433 instantiationProvider.createAutomationCompositions(automationCompositions);
435 var participants = CommonTestData.createParticipants();
436 for (var participant : participants) {
437 participantProvider.saveParticipant(participant);
440 InstantiationCommand command =
441 InstantiationUtils.getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "Command");
443 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
444 Response resp = invocationBuilder.put(Entity.json(command));
445 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
446 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
447 InstantiationUtils.assertInstantiationResponse(instResponse, command);
449 // check passive state on DB
450 for (ToscaConceptIdentifier toscaConceptIdentifier : command.getAutomationCompositionIdentifierList()) {
451 AutomationCompositions automationCompositionsGet = instantiationProvider
452 .getAutomationCompositions(toscaConceptIdentifier.getName(), toscaConceptIdentifier.getVersion());
453 assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1);
454 assertEquals(command.getOrderedState(),
455 automationCompositionsGet.getAutomationCompositionList().get(0).getOrderedState());
460 void testIntanceProperties() throws Exception {
461 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
462 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
463 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
464 var instancePropertyList = resp.readEntity(InstancePropertiesResponse.class);
465 assertNull(instancePropertyList.getErrorDetails());
466 var id = new ToscaConceptIdentifier(ID_NAME, ID_VERSION);
467 assertEquals(id, instancePropertyList.getAffectedInstanceProperties().get(0));
469 invocationBuilder = super.sendRequest(INSTANTIATION_STATE + "?name=" + ID_NAME + "&version=" + ID_VERSION);
470 resp = invocationBuilder.buildGet().invoke();
471 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
472 var instanceOrderState = resp.readEntity(AutomationCompositionOrderStateResponse.class);
473 assertEquals(AutomationCompositionOrderedState.UNINITIALISED, instanceOrderState.getOrderedState());
474 assertEquals(ID_NAME, instanceOrderState.getAutomationCompositionIdentifierList().get(0).getName());
475 AutomationCompositions automationCompositionsGet =
476 instantiationProvider.getAutomationCompositions(ID_NAME, ID_VERSION);
477 assertThat(automationCompositionsGet.getAutomationCompositionList()).hasSize(1);
479 invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES + "?name=" + ID_NAME + "&version=" + ID_VERSION);
480 resp = invocationBuilder.delete();
481 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
482 var instanceResponse = resp.readEntity(InstantiationResponse.class);
483 assertEquals(ID_NAME, instanceResponse.getAffectedAutomationCompositions().get(0).getName());
484 automationCompositionsGet = instantiationProvider.getAutomationCompositions(ID_NAME, ID_VERSION);
485 assertThat(automationCompositionsGet.getAutomationCompositionList()).isEmpty();
489 void testChangeOrderStateFromUninitializedPassiveMode() throws Exception {
490 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
491 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
492 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
494 var automationCompositions =
495 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "CommandPassive");
496 instantiationProvider.createAutomationCompositions(automationCompositions);
498 var participants = CommonTestData.createParticipants();
499 for (var participant : participants) {
500 participantProvider.saveParticipant(participant);
503 InstantiationCommand command = InstantiationUtils
504 .getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "CommandPassive");
506 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
507 resp = invocationBuilder.put(Entity.json(command));
508 assertEquals(Response.Status.ACCEPTED.getStatusCode(), resp.getStatus());
509 InstantiationResponse instResponse = resp.readEntity(InstantiationResponse.class);
510 InstantiationUtils.assertInstantiationResponse(instResponse, command);
514 void testChangeOrderStateWithoutRegisteredParticipants() throws Exception {
515 Invocation.Builder invocationBuilder = super.sendRequest(INSTANTIATION_PROPERTIES);
516 Response resp = invocationBuilder.post(Entity.json(serviceTemplate));
517 assertEquals(Response.Status.OK.getStatusCode(), resp.getStatus());
519 var automationCompositions =
520 InstantiationUtils.getAutomationCompositionsFromResource(AC_INSTANTIATION_CREATE_JSON, "CommandPassive");
521 instantiationProvider.createAutomationCompositions(automationCompositions);
523 InstantiationCommand command = InstantiationUtils
524 .getInstantiationCommandFromResource(AC_INSTANTIATION_CHANGE_STATE_JSON, "CommandPassive");
526 invocationBuilder = super.sendRequest(INSTANTIATION_COMMAND_ENDPOINT);
527 resp = invocationBuilder.put(Entity.json(command));
528 assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), resp.getStatus());
531 private synchronized void deleteEntryInDB() throws Exception {
532 automationCompositionRepository.deleteAll();
533 var list = serviceTemplateProvider.getAllServiceTemplates();
534 if (!list.isEmpty()) {
535 serviceTemplateProvider.deleteServiceTemplate(list.get(0).getName(), list.get(0).getVersion());
539 private synchronized void createEntryInDB() throws Exception {
541 serviceTemplateProvider.createServiceTemplate(serviceTemplate);