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.setDatabaseDriver("org.h2.Driver");
70 parameters.setDatabaseUrl("jdbc:h2:mem:testdb");
71 parameters.setDatabaseUser("policy");
72 parameters.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
73 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");
88 databaseProvider.close();
89 databaseProvider.init();
90 } catch (Exception pfme) {
91 fail("test shold not throw an exception here");
93 databaseProvider.close();
95 parameters.setDatabaseUrl("jdbc:h2:mem:testdb");
97 parameters.setPersistenceUnit("WileECoyote");
99 assertThatThrownBy(() -> {
100 databaseProvider.init();
101 }).hasMessageContaining("could not create Data Access Object (DAO)");
103 parameters.setPersistenceUnit("ToscaConceptTest");
106 databaseProvider.init();
107 databaseProvider.close();
108 } catch (Exception pfme) {
109 pfme.printStackTrace();
110 fail("test shold not throw an exception here");
113 assertThatThrownBy(() -> {
114 databaseProvider.init();
115 databaseProvider.init();
116 }).hasMessage("provider is already initialized");
119 databaseProvider.close();
120 } catch (Exception pfme) {
121 fail("test shold not throw an exception here");
125 databaseProvider.close();
126 } catch (Exception pfme) {
127 fail("test shold not throw an exception here");
132 public void testProviderMethodsNull() throws Exception {
133 PolicyModelsProvider databaseProvider =
134 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
136 assertThatThrownBy(() -> {
137 databaseProvider.getFilteredPolicyTypes(null);
138 }).hasMessage("filter is marked @NonNull but is null");
140 assertThatThrownBy(() -> {
141 databaseProvider.getFilteredPolicyTypeList(null);
142 }).hasMessage("filter is marked @NonNull but is null");
144 assertThatThrownBy(() -> {
145 databaseProvider.createPolicyTypes(null);
146 }).hasMessage("serviceTemplate is marked @NonNull but is null");
148 assertThatThrownBy(() -> {
149 databaseProvider.updatePolicyTypes(null);
150 }).hasMessage("serviceTemplate is marked @NonNull but is null");
152 assertThatThrownBy(() -> {
153 databaseProvider.deletePolicyType(null, null);
154 }).hasMessage("name is marked @NonNull but is null");
156 assertThatThrownBy(() -> {
157 databaseProvider.deletePolicyType("aaa", null);
158 }).hasMessage("version is marked @NonNull but is null");
160 assertThatThrownBy(() -> {
161 databaseProvider.deletePolicyType(null, "aaa");
162 }).hasMessage("name is marked @NonNull but is null");
164 assertThatThrownBy(() -> {
165 databaseProvider.getFilteredPolicies(null);
166 }).hasMessage("filter is marked @NonNull but is null");
168 assertThatThrownBy(() -> {
169 databaseProvider.getFilteredPolicyList(null);
170 }).hasMessage("filter is marked @NonNull but is null");
172 assertThatThrownBy(() -> {
173 databaseProvider.createPolicies(null);
174 }).hasMessage("serviceTemplate is marked @NonNull but is null");
176 assertThatThrownBy(() -> {
177 databaseProvider.updatePolicies(null);
178 }).hasMessage("serviceTemplate is marked @NonNull but is null");
180 assertThatThrownBy(() -> {
181 databaseProvider.deletePolicy(null, null);
182 }).hasMessage("name is marked @NonNull but is null");
184 assertThatThrownBy(() -> {
185 databaseProvider.deletePolicy(null, "aaa");
186 }).hasMessage("name is marked @NonNull but is null");
188 assertThatThrownBy(() -> {
189 databaseProvider.deletePolicy("aaa", null);
190 }).hasMessage("version is marked @NonNull but is null");
192 assertThatThrownBy(() -> {
193 databaseProvider.getOperationalPolicy(null);
194 }).hasMessage("policyId is marked @NonNull but is null");
196 assertThatThrownBy(() -> {
197 databaseProvider.createOperationalPolicy(null);
198 }).hasMessage("legacyOperationalPolicy is marked @NonNull but is null");
200 assertThatThrownBy(() -> {
201 databaseProvider.updateOperationalPolicy(null);
202 }).hasMessage("legacyOperationalPolicy is marked @NonNull but is null");
204 assertThatThrownBy(() -> {
205 databaseProvider.deleteOperationalPolicy(null);
206 }).hasMessage("policyId is marked @NonNull but is null");
208 assertThatThrownBy(() -> {
209 databaseProvider.getGuardPolicy(null);
210 }).hasMessage("policyId is marked @NonNull but is null");
212 assertThatThrownBy(() -> {
213 databaseProvider.createGuardPolicy(null);
214 }).hasMessage("legacyGuardPolicy is marked @NonNull but is null");
216 assertThatThrownBy(() -> {
217 databaseProvider.updateGuardPolicy(null);
218 }).hasMessage("legacyGuardPolicy is marked @NonNull but is null");
220 assertThatThrownBy(() -> {
221 databaseProvider.deleteGuardPolicy(null);
222 }).hasMessage("policyId is marked @NonNull but is null");
224 assertThatThrownBy(() -> {
225 databaseProvider.getFilteredPdpGroups(null);
226 }).hasMessage("filter is marked @NonNull but is null");
228 assertThatThrownBy(() -> {
229 databaseProvider.createPdpGroups(null);
230 }).hasMessage("pdpGroups is marked @NonNull but is null");
232 assertThatThrownBy(() -> {
233 databaseProvider.updatePdpGroups(null);
234 }).hasMessage("pdpGroups is marked @NonNull but is null");
236 assertThatThrownBy(() -> {
237 databaseProvider.updatePdpSubGroup(null, null, null);
238 }).hasMessage("pdpGroupName is marked @NonNull but is null");
240 assertThatThrownBy(() -> {
241 databaseProvider.updatePdpSubGroup(null, null, new PdpSubGroup());
242 }).hasMessage("pdpGroupName is marked @NonNull but is null");
244 assertThatThrownBy(() -> {
245 databaseProvider.updatePdpSubGroup(null, "version", null);
246 }).hasMessage("pdpGroupName is marked @NonNull but is null");
248 assertThatThrownBy(() -> {
249 databaseProvider.updatePdpSubGroup(null, "version", new PdpSubGroup());
250 }).hasMessage("pdpGroupName is marked @NonNull but is null");
252 assertThatThrownBy(() -> {
253 databaseProvider.updatePdpSubGroup("name", null, null);
254 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
256 assertThatThrownBy(() -> {
257 databaseProvider.updatePdpSubGroup("name", null, new PdpSubGroup());
258 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
260 assertThatThrownBy(() -> {
261 databaseProvider.updatePdpSubGroup("name", "version", null);
262 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
264 assertThatThrownBy(() -> {
265 databaseProvider.updatePdp(null, null, null, null);
266 }).hasMessage("pdpGroupName is marked @NonNull but is null");
268 assertThatThrownBy(() -> {
269 databaseProvider.updatePdp(null, null, null, new Pdp());
270 }).hasMessage("pdpGroupName is marked @NonNull but is null");
272 assertThatThrownBy(() -> {
273 databaseProvider.updatePdp(null, null, "sub", null);
274 }).hasMessage("pdpGroupName is marked @NonNull but is null");
276 assertThatThrownBy(() -> {
277 databaseProvider.updatePdp(null, null, "sub", new Pdp());
278 }).hasMessage("pdpGroupName is marked @NonNull but is null");
280 assertThatThrownBy(() -> {
281 databaseProvider.updatePdp(null, "version", null, null);
282 }).hasMessage("pdpGroupName is marked @NonNull but is null");
284 assertThatThrownBy(() -> {
285 databaseProvider.updatePdp(null, "version", null, new Pdp());
286 }).hasMessage("pdpGroupName is marked @NonNull but is null");
288 assertThatThrownBy(() -> {
289 databaseProvider.updatePdp(null, "version", "sub", null);
290 }).hasMessage("pdpGroupName is marked @NonNull but is null");
292 assertThatThrownBy(() -> {
293 databaseProvider.updatePdp(null, "version", "sub", new Pdp());
294 }).hasMessage("pdpGroupName is marked @NonNull but is null");
296 assertThatThrownBy(() -> {
297 databaseProvider.updatePdp("name", null, null, null);
298 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
300 assertThatThrownBy(() -> {
301 databaseProvider.updatePdp("name", null, null, new Pdp());
302 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
304 assertThatThrownBy(() -> {
305 databaseProvider.updatePdp("name", null, "sub", null);
306 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
308 assertThatThrownBy(() -> {
309 databaseProvider.updatePdp("name", null, "sub", new Pdp());
310 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
312 assertThatThrownBy(() -> {
313 databaseProvider.updatePdp("name", "version", null, null);
314 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
316 assertThatThrownBy(() -> {
317 databaseProvider.updatePdp("name", "version", null, new Pdp());
318 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
320 assertThatThrownBy(() -> {
321 databaseProvider.updatePdp("name", "version", "sub", null);
322 }).hasMessage("pdp is marked @NonNull but is null");
324 assertThatThrownBy(() -> {
325 databaseProvider.deletePdpGroup(null, null);
326 }).hasMessage("name is marked @NonNull but is null");
328 assertThatThrownBy(() -> {
329 databaseProvider.deletePdpGroup(null, "version");
330 }).hasMessage("name is marked @NonNull but is null");
332 assertThatThrownBy(() -> {
333 databaseProvider.deletePdpGroup("name", null);
334 }).hasMessage("version is marked @NonNull but is null");
336 assertThatThrownBy(() -> {
337 databaseProvider.updatePdpStatistics(null, null, null, null, null);
338 }).hasMessage("pdpGroupName is marked @NonNull but is null");
340 assertThatThrownBy(() -> {
341 databaseProvider.updatePdpStatistics(null, null, null, null, new PdpStatistics());
342 }).hasMessage("pdpGroupName is marked @NonNull but is null");
344 assertThatThrownBy(() -> {
345 databaseProvider.updatePdpStatistics(null, null, null, "Instance", null);
346 }).hasMessage("pdpGroupName is marked @NonNull but is null");
348 assertThatThrownBy(() -> {
349 databaseProvider.updatePdpStatistics(null, null, null, "Instance", new PdpStatistics());
350 }).hasMessage("pdpGroupName is marked @NonNull but is null");
352 assertThatThrownBy(() -> {
353 databaseProvider.updatePdpStatistics(null, null, "type", null, null);
354 }).hasMessage("pdpGroupName is marked @NonNull but is null");
356 assertThatThrownBy(() -> {
357 databaseProvider.updatePdpStatistics(null, null, "type", null, new PdpStatistics());
358 }).hasMessage("pdpGroupName is marked @NonNull but is null");
360 assertThatThrownBy(() -> {
361 databaseProvider.updatePdpStatistics(null, null, "type", "Instance", null);
362 }).hasMessage("pdpGroupName is marked @NonNull but is null");
364 assertThatThrownBy(() -> {
365 databaseProvider.updatePdpStatistics(null, null, "type", "Instance", new PdpStatistics());
366 }).hasMessage("pdpGroupName is marked @NonNull but is null");
368 assertThatThrownBy(() -> {
369 databaseProvider.updatePdpStatistics(null, "ver", null, null, null);
370 }).hasMessage("pdpGroupName is marked @NonNull but is null");
372 assertThatThrownBy(() -> {
373 databaseProvider.updatePdpStatistics(null, "ver", null, null, new PdpStatistics());
374 }).hasMessage("pdpGroupName is marked @NonNull but is null");
376 assertThatThrownBy(() -> {
377 databaseProvider.updatePdpStatistics(null, "ver", null, "Instance", null);
378 }).hasMessage("pdpGroupName is marked @NonNull but is null");
380 assertThatThrownBy(() -> {
381 databaseProvider.updatePdpStatistics(null, "ver", null, "Instance", new PdpStatistics());
382 }).hasMessage("pdpGroupName is marked @NonNull but is null");
384 assertThatThrownBy(() -> {
385 databaseProvider.updatePdpStatistics(null, "ver", "type", null, null);
386 }).hasMessage("pdpGroupName is marked @NonNull but is null");
388 assertThatThrownBy(() -> {
389 databaseProvider.updatePdpStatistics(null, "ver", "type", null, new PdpStatistics());
390 }).hasMessage("pdpGroupName is marked @NonNull but is null");
392 assertThatThrownBy(() -> {
393 databaseProvider.updatePdpStatistics(null, "ver", "type", "Instance", null);
394 }).hasMessage("pdpGroupName is marked @NonNull but is null");
396 assertThatThrownBy(() -> {
397 databaseProvider.updatePdpStatistics(null, "ver", "type", "Instance", new PdpStatistics());
398 }).hasMessage("pdpGroupName is marked @NonNull but is null");
400 assertThatThrownBy(() -> {
401 databaseProvider.updatePdpStatistics("name", null, null, null, null);
402 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
404 assertThatThrownBy(() -> {
405 databaseProvider.updatePdpStatistics("name", null, null, null, new PdpStatistics());
406 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
408 assertThatThrownBy(() -> {
409 databaseProvider.updatePdpStatistics("name", null, null, "Instance", null);
410 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
412 assertThatThrownBy(() -> {
413 databaseProvider.updatePdpStatistics("name", null, null, "Instance", new PdpStatistics());
414 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
416 assertThatThrownBy(() -> {
417 databaseProvider.updatePdpStatistics("name", null, "type", null, null);
418 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
420 assertThatThrownBy(() -> {
421 databaseProvider.updatePdpStatistics("name", null, "type", null, new PdpStatistics());
422 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
424 assertThatThrownBy(() -> {
425 databaseProvider.updatePdpStatistics("name", null, "type", "Instance", null);
426 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
428 assertThatThrownBy(() -> {
429 databaseProvider.updatePdpStatistics("name", null, "type", "Instance", new PdpStatistics());
430 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
432 assertThatThrownBy(() -> {
433 databaseProvider.updatePdpStatistics("name", "ver", null, null, null);
434 }).hasMessage("pdpType is marked @NonNull but is null");
436 assertThatThrownBy(() -> {
437 databaseProvider.updatePdpStatistics("name", "ver", null, null, new PdpStatistics());
438 }).hasMessage("pdpType is marked @NonNull but is null");
440 assertThatThrownBy(() -> {
441 databaseProvider.updatePdpStatistics("name", "ver", null, "Instance", null);
442 }).hasMessage("pdpType is marked @NonNull but is null");
444 assertThatThrownBy(() -> {
445 databaseProvider.updatePdpStatistics("name", "ver", null, "Instance", new PdpStatistics());
446 }).hasMessage("pdpType is marked @NonNull but is null");
448 assertThatThrownBy(() -> {
449 databaseProvider.updatePdpStatistics("name", "ver", "type", null, null);
450 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
452 assertThatThrownBy(() -> {
453 databaseProvider.updatePdpStatistics("name", "ver", "type", null, new PdpStatistics());
454 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
456 assertThatThrownBy(() -> {
457 databaseProvider.updatePdpStatistics("name", "ver", "type", "Instance", null);
458 }).hasMessage("pdpStatistics is marked @NonNull but is null");
460 databaseProvider.close();
464 public void testProviderMethodsNotInit() throws Exception {
465 PolicyModelsProvider databaseProvider =
466 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters);
468 databaseProvider.close();
470 assertThatThrownBy(() -> {
471 databaseProvider.getPolicyTypes("name", "version");
472 }).hasMessage("policy models provider is not initilaized");
476 public void testProviderMethods() {
477 try (PolicyModelsProvider databaseProvider =
478 new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters)) {
480 assertEquals(0, databaseProvider.getPolicyTypes("name", "version").getPolicyTypes().get(0).size());
481 assertEquals(0, databaseProvider.getPolicyTypeList("name", "version").size());
482 assertEquals(0, databaseProvider.getFilteredPolicyTypes(ToscaPolicyTypeFilter.builder().build())
483 .getPolicyTypes().get(0).size());
484 assertEquals(0, databaseProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().build()).size());
486 assertThatThrownBy(() -> {
487 databaseProvider.createPolicyTypes(new ToscaServiceTemplate());
488 }).hasMessage("no policy types specified on service template");
490 assertThatThrownBy(() -> {
491 databaseProvider.updatePolicyTypes(new ToscaServiceTemplate());
492 }).hasMessage("no policy types specified on service template");
494 assertEquals(0, databaseProvider.deletePolicyType("name", "version").getPolicyTypes().get(0).size());
496 assertEquals(0, databaseProvider.deletePolicyType("name", "version").getPolicyTypes().get(0).size());
498 assertEquals(0, databaseProvider.getPolicies("name", "version").getToscaTopologyTemplate().getPolicies()
500 assertEquals(0, databaseProvider.getPolicyList("name", "version").size());
501 assertEquals(0, databaseProvider.getFilteredPolicies(ToscaPolicyFilter.builder().build())
502 .getToscaTopologyTemplate().getPolicies().get(0).size());
503 assertEquals(0, databaseProvider.getFilteredPolicyList(ToscaPolicyFilter.builder().build()).size());
505 assertThatThrownBy(() -> {
506 databaseProvider.createPolicies(new ToscaServiceTemplate());
507 }).hasMessage("topology template not specified on service template");
509 assertThatThrownBy(() -> {
510 databaseProvider.updatePolicies(new ToscaServiceTemplate());
511 }).hasMessage("topology template not specified on service template");
513 assertEquals(0, databaseProvider.deletePolicy("Policy", "0.0.0").getToscaTopologyTemplate().getPolicies()
516 assertThatThrownBy(() -> {
517 databaseProvider.getOperationalPolicy("policy_id");
518 }).hasMessage("no policy found for policy ID: policy_id");
520 assertThatThrownBy(() -> {
521 databaseProvider.createOperationalPolicy(new LegacyOperationalPolicy());
522 }).hasMessage("name is marked @NonNull but is null");
524 assertThatThrownBy(() -> {
525 databaseProvider.updateOperationalPolicy(new LegacyOperationalPolicy());
526 }).hasMessage("no policy found for policy ID: null");
528 assertThatThrownBy(() -> {
529 databaseProvider.deleteOperationalPolicy("policy_id");
530 }).hasMessage("no policy found for policy ID: policy_id");
532 assertThatThrownBy(() -> {
533 databaseProvider.getGuardPolicy("policy_id");
534 }).hasMessage("no policy found for policy ID: policy_id");
536 assertThatThrownBy(() -> {
537 databaseProvider.createGuardPolicy(new LegacyGuardPolicyInput());
538 }).hasMessage("policy type for guard policy \"null\" unknown");
540 assertThatThrownBy(() -> {
541 databaseProvider.updateGuardPolicy(new LegacyGuardPolicyInput());
542 }).hasMessage("policy type for guard policy \"null\" unknown");
544 assertThatThrownBy(() -> {
545 databaseProvider.deleteGuardPolicy("policy_id");
546 }).hasMessage("no policy found for policy ID: policy_id");
548 assertEquals(0, databaseProvider.getPdpGroups("name", "version").size());
549 assertEquals(0, databaseProvider.getFilteredPdpGroups(PdpGroupFilter.builder().build()).size());
551 assertNotNull(databaseProvider.createPdpGroups(new ArrayList<>()));
552 assertNotNull(databaseProvider.updatePdpGroups(new ArrayList<>()));
554 PdpGroup pdpGroup = new PdpGroup();
555 pdpGroup.setName("group");
556 pdpGroup.setVersion("1.2.3");
557 pdpGroup.setPdpGroupState(PdpState.ACTIVE);
558 pdpGroup.setPdpSubgroups(new ArrayList<>());
559 List<PdpGroup> groupList = new ArrayList<>();
560 groupList.add(pdpGroup);
562 PdpSubGroup pdpSubGroup = new PdpSubGroup();
563 pdpSubGroup.setPdpType("type");
564 pdpSubGroup.setDesiredInstanceCount(123);
565 pdpSubGroup.setSupportedPolicyTypes(new ArrayList<>());
566 pdpSubGroup.getSupportedPolicyTypes().add(new ToscaPolicyTypeIdentifier("type", "7.8.9"));
567 pdpGroup.getPdpSubgroups().add(pdpSubGroup);
570 pdp.setInstanceId("type-0");
571 pdp.setMessage("Hello");
572 pdp.setPdpState(PdpState.ACTIVE);
573 pdp.setHealthy(PdpHealthStatus.UNKNOWN);
574 pdpSubGroup.setPdpInstances(new ArrayList<>());
575 pdpSubGroup.getPdpInstances().add(pdp);
577 assertEquals(123, databaseProvider.createPdpGroups(groupList).get(0).getPdpSubgroups().get(0)
578 .getDesiredInstanceCount());
579 assertEquals(1, databaseProvider.getPdpGroups("group", "1.2.3").size());
581 pdpSubGroup.setDesiredInstanceCount(234);
582 databaseProvider.updatePdpSubGroup("group", "1.2.3", pdpSubGroup);
583 assertEquals(234, databaseProvider.getPdpGroups("group", "1.2.3").get(0).getPdpSubgroups()
584 .get(0).getDesiredInstanceCount());
586 assertEquals("Hello", databaseProvider.getPdpGroups("group", "1.2.3").get(0).getPdpSubgroups()
587 .get(0).getPdpInstances().get(0).getMessage());
588 pdp.setMessage("Howdy");
589 databaseProvider.updatePdp("group", "1.2.3", "type", pdp);
590 assertEquals("Howdy", databaseProvider.getPdpGroups("group", "1.2.3").get(0).getPdpSubgroups()
591 .get(0).getPdpInstances().get(0).getMessage());
593 assertThatThrownBy(() -> {
594 databaseProvider.deletePdpGroup("name", "version");
595 }).hasMessage("delete of PDP group \"name:version\" failed, PDP group does not exist");
597 assertEquals(pdpGroup.getName(), databaseProvider.deletePdpGroup("group", "1.2.3").getName());
599 assertEquals(0, databaseProvider.getPdpStatistics(null, null).size());
601 databaseProvider.updatePdpStatistics("group", "1.2.3", "type", "type-0", new PdpStatistics());
602 } catch (Exception exc) {
603 LOGGER.warn("test should not throw an exception", exc);
604 fail("test should not throw an exception");