2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2019 Nordix Foundation.
4 * ================================================================================
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.models.provider.impl;
23 import static org.assertj.core.api.Assertions.assertThatThrownBy;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.fail;
28 import java.util.ArrayList;
29 import java.util.Base64;
30 import java.util.List;
32 import org.junit.Before;
33 import org.junit.Test;
34 import org.onap.policy.models.pdp.concepts.Pdp;
35 import org.onap.policy.models.pdp.concepts.PdpGroup;
36 import org.onap.policy.models.pdp.concepts.PdpGroupFilter;
37 import org.onap.policy.models.pdp.concepts.PdpStatistics;
38 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
39 import org.onap.policy.models.pdp.enums.PdpHealthStatus;
40 import org.onap.policy.models.pdp.enums.PdpState;
41 import org.onap.policy.models.provider.PolicyModelsProvider;
42 import org.onap.policy.models.provider.PolicyModelsProviderFactory;
43 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
44 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
45 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter;
46 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
47 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
48 import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput;
49 import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
50 import org.slf4j.Logger;
51 import org.slf4j.LoggerFactory;
54 * Test the database models provider implementation.
56 * @author Liam Fallon (liam.fallon@est.tech)
58 public class DatabasePolicyModelsProviderTest {
59 private static final Logger LOGGER = LoggerFactory.getLogger(DatabasePolicyModelsProviderTest.class);
61 PolicyModelsProviderParameters parameters;
64 * Initialize parameters.
67 public void setupParameters() {
68 parameters = new PolicyModelsProviderParameters();
69 parameters.setDatabaseUrl("jdbc:h2:mem:testdb");
70 parameters.setDatabaseUser("policy");
71 parameters.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
72 parameters.setPersistenceUnit("ToscaConceptTest");
77 public void testInitAndClose() throws Exception {
78 assertThatThrownBy(() -> {
79 new DatabasePolicyModelsProviderImpl(null);
80 }).hasMessage("parameters is marked @NonNull but is null");
82 PolicyModelsProvider databaseProvider =
83 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
85 parameters.setDatabaseUrl("jdbc://www.acmecorp.nonexist");
87 assertThatThrownBy(() -> {
88 databaseProvider.close();
89 databaseProvider.init();
90 }).hasMessage("could not connect to database with URL \"jdbc://www.acmecorp.nonexist\"");
92 parameters.setDatabaseUrl("jdbc:h2:mem:testdb");
95 databaseProvider.init();
96 databaseProvider.close();
97 } catch (Exception pfme) {
98 fail("test shold not throw an exception here");
101 parameters.setPersistenceUnit("WileECoyote");
103 String errorMessage = "could not create Data Access Object (DAO) using url "
104 + "\"jdbc:h2:mem:testdb\" and persistence unit \"WileECoyote\"";
105 assertThatThrownBy(() -> {
106 databaseProvider.init();
107 }).hasMessage(errorMessage);
109 parameters.setPersistenceUnit("ToscaConceptTest");
112 databaseProvider.init();
113 databaseProvider.close();
114 } catch (Exception pfme) {
115 fail("test shold not throw an exception here");
118 assertThatThrownBy(() -> {
119 databaseProvider.init();
120 databaseProvider.init();
121 }).hasMessage("provider is already initialized");
124 databaseProvider.close();
125 } catch (Exception pfme) {
126 fail("test shold not throw an exception here");
130 databaseProvider.close();
131 } catch (Exception pfme) {
132 fail("test shold not throw an exception here");
135 assertThatThrownBy(() -> {
136 DatabasePolicyModelsProviderImpl databaseProviderImpl = (DatabasePolicyModelsProviderImpl) databaseProvider;
137 databaseProvider.init();
138 databaseProviderImpl.setConnection(new DummyConnection());
139 databaseProvider.close();
140 }).hasMessage("could not close connection to database with URL \"jdbc:h2:mem:testdb\"");
144 public void testProviderMethodsNull() throws Exception {
145 PolicyModelsProvider databaseProvider =
146 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
148 assertThatThrownBy(() -> {
149 databaseProvider.getFilteredPolicyTypes(null);
150 }).hasMessage("filter is marked @NonNull but is null");
152 assertThatThrownBy(() -> {
153 databaseProvider.getFilteredPolicyTypeList(null);
154 }).hasMessage("filter is marked @NonNull but is null");
156 assertThatThrownBy(() -> {
157 databaseProvider.createPolicyTypes(null);
158 }).hasMessage("serviceTemplate is marked @NonNull but is null");
160 assertThatThrownBy(() -> {
161 databaseProvider.updatePolicyTypes(null);
162 }).hasMessage("serviceTemplate is marked @NonNull but is null");
164 assertThatThrownBy(() -> {
165 databaseProvider.deletePolicyType(null, null);
166 }).hasMessage("name is marked @NonNull but is null");
168 assertThatThrownBy(() -> {
169 databaseProvider.deletePolicyType("aaa", null);
170 }).hasMessage("version is marked @NonNull but is null");
172 assertThatThrownBy(() -> {
173 databaseProvider.deletePolicyType(null, "aaa");
174 }).hasMessage("name is marked @NonNull but is null");
176 assertThatThrownBy(() -> {
177 databaseProvider.getFilteredPolicies(null);
178 }).hasMessage("filter is marked @NonNull but is null");
180 assertThatThrownBy(() -> {
181 databaseProvider.getFilteredPolicyList(null);
182 }).hasMessage("filter is marked @NonNull but is null");
184 assertThatThrownBy(() -> {
185 databaseProvider.createPolicies(null);
186 }).hasMessage("serviceTemplate is marked @NonNull but is null");
188 assertThatThrownBy(() -> {
189 databaseProvider.updatePolicies(null);
190 }).hasMessage("serviceTemplate is marked @NonNull but is null");
192 assertThatThrownBy(() -> {
193 databaseProvider.deletePolicy(null, null);
194 }).hasMessage("name is marked @NonNull but is null");
196 assertThatThrownBy(() -> {
197 databaseProvider.deletePolicy(null, "aaa");
198 }).hasMessage("name is marked @NonNull but is null");
200 assertThatThrownBy(() -> {
201 databaseProvider.deletePolicy("aaa", null);
202 }).hasMessage("version is marked @NonNull but is null");
204 assertThatThrownBy(() -> {
205 databaseProvider.getOperationalPolicy(null);
206 }).hasMessage("policyId is marked @NonNull but is null");
208 assertThatThrownBy(() -> {
209 databaseProvider.createOperationalPolicy(null);
210 }).hasMessage("legacyOperationalPolicy is marked @NonNull but is null");
212 assertThatThrownBy(() -> {
213 databaseProvider.updateOperationalPolicy(null);
214 }).hasMessage("legacyOperationalPolicy is marked @NonNull but is null");
216 assertThatThrownBy(() -> {
217 databaseProvider.deleteOperationalPolicy(null);
218 }).hasMessage("policyId is marked @NonNull but is null");
220 assertThatThrownBy(() -> {
221 databaseProvider.getGuardPolicy(null);
222 }).hasMessage("policyId is marked @NonNull but is null");
224 assertThatThrownBy(() -> {
225 databaseProvider.createGuardPolicy(null);
226 }).hasMessage("legacyGuardPolicy is marked @NonNull but is null");
228 assertThatThrownBy(() -> {
229 databaseProvider.updateGuardPolicy(null);
230 }).hasMessage("legacyGuardPolicy is marked @NonNull but is null");
232 assertThatThrownBy(() -> {
233 databaseProvider.deleteGuardPolicy(null);
234 }).hasMessage("policyId is marked @NonNull but is null");
236 assertThatThrownBy(() -> {
237 databaseProvider.getFilteredPdpGroups(null);
238 }).hasMessage("filter is marked @NonNull but is null");
240 assertThatThrownBy(() -> {
241 databaseProvider.createPdpGroups(null);
242 }).hasMessage("pdpGroups is marked @NonNull but is null");
244 assertThatThrownBy(() -> {
245 databaseProvider.updatePdpGroups(null);
246 }).hasMessage("pdpGroups is marked @NonNull but is null");
248 assertThatThrownBy(() -> {
249 databaseProvider.updatePdpSubGroup(null, null, null);
250 }).hasMessage("pdpGroupName is marked @NonNull but is null");
252 assertThatThrownBy(() -> {
253 databaseProvider.updatePdpSubGroup(null, null, new PdpSubGroup());
254 }).hasMessage("pdpGroupName is marked @NonNull but is null");
256 assertThatThrownBy(() -> {
257 databaseProvider.updatePdpSubGroup(null, "version", null);
258 }).hasMessage("pdpGroupName is marked @NonNull but is null");
260 assertThatThrownBy(() -> {
261 databaseProvider.updatePdpSubGroup(null, "version", new PdpSubGroup());
262 }).hasMessage("pdpGroupName is marked @NonNull but is null");
264 assertThatThrownBy(() -> {
265 databaseProvider.updatePdpSubGroup("name", null, null);
266 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
268 assertThatThrownBy(() -> {
269 databaseProvider.updatePdpSubGroup("name", null, new PdpSubGroup());
270 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
272 assertThatThrownBy(() -> {
273 databaseProvider.updatePdpSubGroup("name", "version", null);
274 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
276 assertThatThrownBy(() -> {
277 databaseProvider.updatePdp(null, null, null, null);
278 }).hasMessage("pdpGroupName is marked @NonNull but is null");
280 assertThatThrownBy(() -> {
281 databaseProvider.updatePdp(null, null, null, new Pdp());
282 }).hasMessage("pdpGroupName is marked @NonNull but is null");
284 assertThatThrownBy(() -> {
285 databaseProvider.updatePdp(null, null, "sub", null);
286 }).hasMessage("pdpGroupName is marked @NonNull but is null");
288 assertThatThrownBy(() -> {
289 databaseProvider.updatePdp(null, null, "sub", new Pdp());
290 }).hasMessage("pdpGroupName is marked @NonNull but is null");
292 assertThatThrownBy(() -> {
293 databaseProvider.updatePdp(null, "version", null, null);
294 }).hasMessage("pdpGroupName is marked @NonNull but is null");
296 assertThatThrownBy(() -> {
297 databaseProvider.updatePdp(null, "version", null, new Pdp());
298 }).hasMessage("pdpGroupName is marked @NonNull but is null");
300 assertThatThrownBy(() -> {
301 databaseProvider.updatePdp(null, "version", "sub", null);
302 }).hasMessage("pdpGroupName is marked @NonNull but is null");
304 assertThatThrownBy(() -> {
305 databaseProvider.updatePdp(null, "version", "sub", new Pdp());
306 }).hasMessage("pdpGroupName is marked @NonNull but is null");
308 assertThatThrownBy(() -> {
309 databaseProvider.updatePdp("name", null, null, null);
310 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
312 assertThatThrownBy(() -> {
313 databaseProvider.updatePdp("name", null, null, new Pdp());
314 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
316 assertThatThrownBy(() -> {
317 databaseProvider.updatePdp("name", null, "sub", null);
318 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
320 assertThatThrownBy(() -> {
321 databaseProvider.updatePdp("name", null, "sub", new Pdp());
322 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
324 assertThatThrownBy(() -> {
325 databaseProvider.updatePdp("name", "version", null, null);
326 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
328 assertThatThrownBy(() -> {
329 databaseProvider.updatePdp("name", "version", null, new Pdp());
330 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
332 assertThatThrownBy(() -> {
333 databaseProvider.updatePdp("name", "version", "sub", null);
334 }).hasMessage("pdp is marked @NonNull but is null");
336 assertThatThrownBy(() -> {
337 databaseProvider.deletePdpGroup(null, null);
338 }).hasMessage("name is marked @NonNull but is null");
340 assertThatThrownBy(() -> {
341 databaseProvider.deletePdpGroup(null, "version");
342 }).hasMessage("name is marked @NonNull but is null");
344 assertThatThrownBy(() -> {
345 databaseProvider.deletePdpGroup("name", null);
346 }).hasMessage("version is marked @NonNull but is null");
348 assertThatThrownBy(() -> {
349 databaseProvider.updatePdpStatistics(null, null, null, null, null);
350 }).hasMessage("pdpGroupName is marked @NonNull but is null");
352 assertThatThrownBy(() -> {
353 databaseProvider.updatePdpStatistics(null, null, null, null, new PdpStatistics());
354 }).hasMessage("pdpGroupName is marked @NonNull but is null");
356 assertThatThrownBy(() -> {
357 databaseProvider.updatePdpStatistics(null, null, null, "Instance", null);
358 }).hasMessage("pdpGroupName is marked @NonNull but is null");
360 assertThatThrownBy(() -> {
361 databaseProvider.updatePdpStatistics(null, null, null, "Instance", new PdpStatistics());
362 }).hasMessage("pdpGroupName is marked @NonNull but is null");
364 assertThatThrownBy(() -> {
365 databaseProvider.updatePdpStatistics(null, null, "type", null, null);
366 }).hasMessage("pdpGroupName is marked @NonNull but is null");
368 assertThatThrownBy(() -> {
369 databaseProvider.updatePdpStatistics(null, null, "type", null, new PdpStatistics());
370 }).hasMessage("pdpGroupName is marked @NonNull but is null");
372 assertThatThrownBy(() -> {
373 databaseProvider.updatePdpStatistics(null, null, "type", "Instance", null);
374 }).hasMessage("pdpGroupName is marked @NonNull but is null");
376 assertThatThrownBy(() -> {
377 databaseProvider.updatePdpStatistics(null, null, "type", "Instance", new PdpStatistics());
378 }).hasMessage("pdpGroupName is marked @NonNull but is null");
380 assertThatThrownBy(() -> {
381 databaseProvider.updatePdpStatistics(null, "ver", null, null, null);
382 }).hasMessage("pdpGroupName is marked @NonNull but is null");
384 assertThatThrownBy(() -> {
385 databaseProvider.updatePdpStatistics(null, "ver", null, null, new PdpStatistics());
386 }).hasMessage("pdpGroupName is marked @NonNull but is null");
388 assertThatThrownBy(() -> {
389 databaseProvider.updatePdpStatistics(null, "ver", null, "Instance", null);
390 }).hasMessage("pdpGroupName is marked @NonNull but is null");
392 assertThatThrownBy(() -> {
393 databaseProvider.updatePdpStatistics(null, "ver", null, "Instance", new PdpStatistics());
394 }).hasMessage("pdpGroupName is marked @NonNull but is null");
396 assertThatThrownBy(() -> {
397 databaseProvider.updatePdpStatistics(null, "ver", "type", null, null);
398 }).hasMessage("pdpGroupName is marked @NonNull but is null");
400 assertThatThrownBy(() -> {
401 databaseProvider.updatePdpStatistics(null, "ver", "type", null, new PdpStatistics());
402 }).hasMessage("pdpGroupName is marked @NonNull but is null");
404 assertThatThrownBy(() -> {
405 databaseProvider.updatePdpStatistics(null, "ver", "type", "Instance", null);
406 }).hasMessage("pdpGroupName is marked @NonNull but is null");
408 assertThatThrownBy(() -> {
409 databaseProvider.updatePdpStatistics(null, "ver", "type", "Instance", new PdpStatistics());
410 }).hasMessage("pdpGroupName is marked @NonNull but is null");
412 assertThatThrownBy(() -> {
413 databaseProvider.updatePdpStatistics("name", null, null, null, null);
414 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
416 assertThatThrownBy(() -> {
417 databaseProvider.updatePdpStatistics("name", null, null, null, new PdpStatistics());
418 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
420 assertThatThrownBy(() -> {
421 databaseProvider.updatePdpStatistics("name", null, null, "Instance", null);
422 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
424 assertThatThrownBy(() -> {
425 databaseProvider.updatePdpStatistics("name", null, null, "Instance", new PdpStatistics());
426 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
428 assertThatThrownBy(() -> {
429 databaseProvider.updatePdpStatistics("name", null, "type", null, null);
430 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
432 assertThatThrownBy(() -> {
433 databaseProvider.updatePdpStatistics("name", null, "type", null, new PdpStatistics());
434 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
436 assertThatThrownBy(() -> {
437 databaseProvider.updatePdpStatistics("name", null, "type", "Instance", null);
438 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
440 assertThatThrownBy(() -> {
441 databaseProvider.updatePdpStatistics("name", null, "type", "Instance", new PdpStatistics());
442 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
444 assertThatThrownBy(() -> {
445 databaseProvider.updatePdpStatistics("name", "ver", null, null, null);
446 }).hasMessage("pdpType is marked @NonNull but is null");
448 assertThatThrownBy(() -> {
449 databaseProvider.updatePdpStatistics("name", "ver", null, null, new PdpStatistics());
450 }).hasMessage("pdpType is marked @NonNull but is null");
452 assertThatThrownBy(() -> {
453 databaseProvider.updatePdpStatistics("name", "ver", null, "Instance", null);
454 }).hasMessage("pdpType is marked @NonNull but is null");
456 assertThatThrownBy(() -> {
457 databaseProvider.updatePdpStatistics("name", "ver", null, "Instance", new PdpStatistics());
458 }).hasMessage("pdpType is marked @NonNull but is null");
460 assertThatThrownBy(() -> {
461 databaseProvider.updatePdpStatistics("name", "ver", "type", null, null);
462 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
464 assertThatThrownBy(() -> {
465 databaseProvider.updatePdpStatistics("name", "ver", "type", null, new PdpStatistics());
466 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
468 assertThatThrownBy(() -> {
469 databaseProvider.updatePdpStatistics("name", "ver", "type", "Instance", null);
470 }).hasMessage("pdpStatistics is marked @NonNull but is null");
472 databaseProvider.close();
476 public void testProviderMethodsNotInit() throws Exception {
477 PolicyModelsProvider databaseProvider =
478 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
480 databaseProvider.close();
482 assertThatThrownBy(() -> {
483 databaseProvider.getPolicyTypes("name", "version");
484 }).hasMessage("policy models provider is not initilaized");
488 public void testProviderMethods() {
489 try (PolicyModelsProvider databaseProvider =
490 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters)) {
492 assertEquals(0, databaseProvider.getPolicyTypes("name", "version").getPolicyTypes().get(0).size());
493 assertEquals(0, databaseProvider.getPolicyTypeList("name", "version").size());
494 assertEquals(0, databaseProvider.getFilteredPolicyTypes(ToscaPolicyTypeFilter.builder().build())
495 .getPolicyTypes().get(0).size());
496 assertEquals(0, databaseProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().build()).size());
498 assertThatThrownBy(() -> {
499 databaseProvider.createPolicyTypes(new ToscaServiceTemplate());
500 }).hasMessage("no policy types specified on service template");
502 assertThatThrownBy(() -> {
503 databaseProvider.updatePolicyTypes(new ToscaServiceTemplate());
504 }).hasMessage("no policy types specified on service template");
506 assertEquals(0, databaseProvider.deletePolicyType("name", "version").getPolicyTypes().get(0).size());
508 assertEquals(0, databaseProvider.deletePolicyType("name", "version").getPolicyTypes().get(0).size());
510 assertEquals(0, databaseProvider.getPolicies("name", "version").getToscaTopologyTemplate().getPolicies()
512 assertEquals(0, databaseProvider.getPolicyList("name", "version").size());
513 assertEquals(0, databaseProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build())
514 .getToscaTopologyTemplate().getPolicies().get(0).size());
515 assertEquals(0, databaseProvider.getFilteredPolicyList(ToscaPolicyFilter.builder().build()).size());
517 assertThatThrownBy(() -> {
518 databaseProvider.createPolicies(new ToscaServiceTemplate());
519 }).hasMessage("topology template not specified on service template");
521 assertThatThrownBy(() -> {
522 databaseProvider.updatePolicies(new ToscaServiceTemplate());
523 }).hasMessage("topology template not specified on service template");
525 assertEquals(0, databaseProvider.deletePolicy("Policy", "0.0.0").getToscaTopologyTemplate().getPolicies()
528 assertThatThrownBy(() -> {
529 databaseProvider.getOperationalPolicy("policy_id");
530 }).hasMessage("no policy found for policy ID: policy_id");
532 assertThatThrownBy(() -> {
533 databaseProvider.createOperationalPolicy(new LegacyOperationalPolicy());
534 }).hasMessage("name is marked @NonNull but is null");
536 assertThatThrownBy(() -> {
537 databaseProvider.updateOperationalPolicy(new LegacyOperationalPolicy());
538 }).hasMessage("no policy found for policy ID: null");
540 assertThatThrownBy(() -> {
541 databaseProvider.deleteOperationalPolicy("policy_id");
542 }).hasMessage("no policy found for policy ID: policy_id");
544 assertThatThrownBy(() -> {
545 databaseProvider.getGuardPolicy("policy_id");
546 }).hasMessage("no policy found for policy ID: policy_id");
548 assertThatThrownBy(() -> {
549 databaseProvider.createGuardPolicy(new LegacyGuardPolicyInput());
550 }).hasMessage("policy type for guard policy \"null\" unknown");
552 assertThatThrownBy(() -> {
553 databaseProvider.updateGuardPolicy(new LegacyGuardPolicyInput());
554 }).hasMessage("policy type for guard policy \"null\" unknown");
556 assertThatThrownBy(() -> {
557 databaseProvider.deleteGuardPolicy("policy_id");
558 }).hasMessage("no policy found for policy ID: policy_id");
560 assertEquals(0, databaseProvider.getPdpGroups("name", "version").size());
561 assertEquals(0, databaseProvider.getFilteredPdpGroups(PdpGroupFilter.builder().build()).size());
563 assertNotNull(databaseProvider.createPdpGroups(new ArrayList<>()));
564 assertNotNull(databaseProvider.updatePdpGroups(new ArrayList<>()));
566 PdpGroup pdpGroup = new PdpGroup();
567 pdpGroup.setName("group");
568 pdpGroup.setVersion("1.2.3");
569 pdpGroup.setPdpGroupState(PdpState.ACTIVE);
570 pdpGroup.setPdpSubgroups(new ArrayList<>());
571 List<PdpGroup> groupList = new ArrayList<>();
572 groupList.add(pdpGroup);
574 PdpSubGroup pdpSubGroup = new PdpSubGroup();
575 pdpSubGroup.setPdpType("type");
576 pdpSubGroup.setDesiredInstanceCount(123);
577 pdpSubGroup.setSupportedPolicyTypes(new ArrayList<>());
578 pdpSubGroup.getSupportedPolicyTypes().add(new ToscaPolicyTypeIdentifier("type", "7.8.9"));
579 pdpGroup.getPdpSubgroups().add(pdpSubGroup);
582 pdp.setInstanceId("type-0");
583 pdp.setMessage("Hello");
584 pdp.setPdpState(PdpState.ACTIVE);
585 pdp.setHealthy(PdpHealthStatus.UNKNOWN);
586 pdpSubGroup.setPdpInstances(new ArrayList<>());
587 pdpSubGroup.getPdpInstances().add(pdp);
589 assertEquals(123, databaseProvider.createPdpGroups(groupList).get(0).getPdpSubgroups().get(0)
590 .getDesiredInstanceCount());
591 assertEquals(1, databaseProvider.getPdpGroups("group", "1.2.3").size());
593 pdpSubGroup.setDesiredInstanceCount(234);
594 databaseProvider.updatePdpSubGroup("group", "1.2.3", pdpSubGroup);
595 assertEquals(234, databaseProvider.getPdpGroups("group", "1.2.3").get(0).getPdpSubgroups()
596 .get(0).getDesiredInstanceCount());
598 assertEquals("Hello", databaseProvider.getPdpGroups("group", "1.2.3").get(0).getPdpSubgroups()
599 .get(0).getPdpInstances().get(0).getMessage());
600 pdp.setMessage("Howdy");
601 databaseProvider.updatePdp("group", "1.2.3", "type", pdp);
602 assertEquals("Howdy", databaseProvider.getPdpGroups("group", "1.2.3").get(0).getPdpSubgroups()
603 .get(0).getPdpInstances().get(0).getMessage());
605 assertThatThrownBy(() -> {
606 databaseProvider.deletePdpGroup("name", "version");
607 }).hasMessage("delete of PDP group \"name:version\" failed, PDP group does not exist");
609 assertEquals(pdpGroup.getName(), databaseProvider.deletePdpGroup("group", "1.2.3").getName());
611 assertEquals(0, databaseProvider.getPdpStatistics(null, null).size());
613 databaseProvider.updatePdpStatistics("group", "1.2.3", "type", "type-0", new PdpStatistics());
614 } catch (Exception exc) {
615 LOGGER.warn("test should not throw an exception", exc);
616 fail("test should not throw an exception");