2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2019 Nordix Foundation.
4 * Modifications Copyright (C) 2019 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.models.pdp.persistence.provider;
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertNotEquals;
27 import static org.junit.Assert.assertTrue;
29 import java.util.ArrayList;
30 import java.util.List;
31 import java.util.Properties;
33 import org.junit.After;
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.onap.policy.common.utils.coder.StandardCoder;
37 import org.onap.policy.common.utils.resources.ResourceUtils;
38 import org.onap.policy.models.base.PfModelException;
39 import org.onap.policy.models.dao.DaoParameters;
40 import org.onap.policy.models.dao.PfDao;
41 import org.onap.policy.models.dao.PfDaoFactory;
42 import org.onap.policy.models.dao.impl.DefaultPfDao;
43 import org.onap.policy.models.pdp.concepts.Pdp;
44 import org.onap.policy.models.pdp.concepts.PdpGroup;
45 import org.onap.policy.models.pdp.concepts.PdpGroupFilter;
46 import org.onap.policy.models.pdp.concepts.PdpGroups;
47 import org.onap.policy.models.pdp.concepts.PdpStatistics;
48 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
49 import org.onap.policy.models.pdp.enums.PdpHealthStatus;
50 import org.onap.policy.models.pdp.enums.PdpState;
51 import org.onap.policy.models.pdp.persistence.provider.PdpProvider;
52 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier;
53 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
54 import org.onap.policy.models.tosca.simple.provider.SimpleToscaProvider;
57 * Test the {@link SimpleToscaProvider} class.
59 * @author Liam Fallon (liam.fallon@est.tech)
61 public class PdpProviderTest {
63 private StandardCoder standardCoder;
67 * Set up the DAO towards the database.
69 * @throws Exception on database errors
72 public void setupDao() throws Exception {
73 final DaoParameters daoParameters = new DaoParameters();
74 daoParameters.setPluginClass(DefaultPfDao.class.getCanonicalName());
76 daoParameters.setPersistenceUnit("ToscaConceptTest");
78 Properties jdbcProperties = new Properties();
79 jdbcProperties.setProperty("javax.persistence.jdbc.user", "policy");
80 jdbcProperties.setProperty("javax.persistence.jdbc.password", "P01icY");
83 jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.h2.Driver");
84 jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:h2:mem:testdb");
87 //jdbcProperties.setProperty("javax.persistence.jdbc.driver", "org.mariadb.jdbc.Driver");
88 //jdbcProperties.setProperty("javax.persistence.jdbc.url", "jdbc:mariadb://localhost:3306/policy");
90 daoParameters.setJdbcProperties(jdbcProperties );
92 pfDao = new PfDaoFactory().createPfDao(daoParameters);
93 pfDao.init(daoParameters);
100 public void setupGson() {
101 standardCoder = new StandardCoder();
105 public void teardown() throws Exception {
110 public void testGroupsGet() throws Exception {
111 assertThatThrownBy(() -> {
112 new PdpProvider().getPdpGroups(null, null, null);
113 }).hasMessage("dao is marked @NonNull but is null");
115 assertThatThrownBy(() -> {
116 new PdpProvider().getPdpGroups(null, null, "version");
117 }).hasMessage("dao is marked @NonNull but is null");
119 assertThatThrownBy(() -> {
120 new PdpProvider().getPdpGroups(null, "name", "version");
121 }).hasMessage("dao is marked @NonNull but is null");
123 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
124 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
126 PdpGroups createdPdpGroups0 = new PdpGroups();
127 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
128 String createdJson = standardCoder.encode(createdPdpGroups0);
129 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
131 PdpGroups gotPdpGroups0 = new PdpGroups();
132 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
134 String gotJson = standardCoder.encode(gotPdpGroups0);
136 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
140 public void testFilteredPdpGroupGet() throws Exception {
141 assertThatThrownBy(() -> {
142 new PdpProvider().getFilteredPdpGroups(null, null);
143 }).hasMessage("dao is marked @NonNull but is null");
145 assertThatThrownBy(() -> {
146 new PdpProvider().getFilteredPdpGroups(null, PdpGroupFilter.builder().build());
147 }).hasMessage("dao is marked @NonNull but is null");
149 assertThatThrownBy(() -> {
150 new PdpProvider().getFilteredPdpGroups(pfDao, null);
151 }).hasMessage("filter is marked @NonNull but is null");
153 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroupsForFiltering.json");
154 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
156 assertEquals(5, new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()).size());
158 List<ToscaPolicyTypeIdentifier> policyTypeList = new ArrayList<>();
159 policyTypeList.add(new ToscaPolicyTypeIdentifier("policy.type.0", "1.2.3"));
161 List<ToscaPolicyIdentifier> policyList = new ArrayList<>();
162 policyList.add(new ToscaPolicyIdentifier("Policy0", "4.5.6"));
165 final PdpGroupFilter filter = PdpGroupFilter.builder()
166 .groupState(PdpState.PASSIVE)
169 .matchPoliciesExactly(false)
170 .matchPolicyTypesExactly(false)
171 .pdpState(PdpState.PASSIVE)
173 .policyTypeList(policyTypeList)
174 .policyList(policyList)
177 assertEquals(1, new PdpProvider().getFilteredPdpGroups(pfDao, filter).size());
181 public void testGroupsCreate() throws Exception {
182 assertThatThrownBy(() -> {
183 new PdpProvider().createPdpGroups(null, null);
184 }).hasMessage("dao is marked @NonNull but is null");
186 assertThatThrownBy(() -> {
187 new PdpProvider().createPdpGroups(null, new ArrayList<>());
188 }).hasMessage("dao is marked @NonNull but is null");
190 assertThatThrownBy(() -> {
191 new PdpProvider().createPdpGroups(pfDao, null);
192 }).hasMessage("pdpGroups is marked @NonNull but is null");
194 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
195 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
197 PdpGroups createdPdpGroups0 = new PdpGroups();
198 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
199 String createdJson = standardCoder.encode(createdPdpGroups0);
200 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
202 PdpGroups gotPdpGroups0 = new PdpGroups();
203 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
205 String gotJson = standardCoder.encode(gotPdpGroups0);
206 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
208 pdpGroups0.getGroups().get(0).setPdpGroupState(null);
209 assertThatThrownBy(() -> {
210 new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups());
211 }).hasMessageContaining("INVALID:pdpGroupState may not be null");
215 public void testGroupsCreateNoPdp() throws Exception {
216 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroupsNoPDPs.json");
218 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
220 PdpGroups createdPdpGroups0 = new PdpGroups();
221 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
222 assertNotEquals(pdpGroups0, createdPdpGroups0);
223 pdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).setPdpInstances(new ArrayList<>());
224 String originalTweakedJson = standardCoder.encode(pdpGroups0);
225 String createdJson = standardCoder.encode(createdPdpGroups0);
226 assertEquals(originalTweakedJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
228 PdpGroups gotPdpGroups0 = new PdpGroups();
229 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "TestPdpGroup", "1.2.3"));
231 String gotJson = standardCoder.encode(gotPdpGroups0);
232 assertEquals(originalTweakedJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
236 public void testGroupsUpdate() throws Exception {
237 assertThatThrownBy(() -> {
238 new PdpProvider().updatePdpGroups(null, null);
239 }).hasMessage("dao is marked @NonNull but is null");
241 assertThatThrownBy(() -> {
242 new PdpProvider().updatePdpGroups(null, new ArrayList<>());
243 }).hasMessage("dao is marked @NonNull but is null");
245 assertThatThrownBy(() -> {
246 new PdpProvider().updatePdpGroups(pfDao, null);
247 }).hasMessage("pdpGroups is marked @NonNull but is null");
249 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
250 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
252 PdpGroups createdPdpGroups0 = new PdpGroups();
253 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
254 String createdJson = standardCoder.encode(createdPdpGroups0);
255 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
257 PdpGroups gotPdpGroups0 = new PdpGroups();
258 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
260 String gotJson = standardCoder.encode(gotPdpGroups0);
261 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
263 String updateJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0Update.json");
264 PdpGroups updatePdpGroups0 = standardCoder.decode(updateJson, PdpGroups.class);
266 PdpGroups updatedPdpGroups0 = new PdpGroups();
267 updatedPdpGroups0.setGroups(new PdpProvider().updatePdpGroups(pfDao, updatePdpGroups0.getGroups()));
269 List<Pdp> beforePdpInstances = updatePdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances();
270 List<Pdp> afterPdpInstances = updatedPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances();
271 assertTrue(beforePdpInstances.containsAll(afterPdpInstances));
273 pdpGroups0.getGroups().get(0).setPdpGroupState(null);
274 assertThatThrownBy(() -> {
275 new PdpProvider().updatePdpGroups(pfDao, pdpGroups0.getGroups());
276 }).hasMessageContaining("INVALID:pdpGroupState may not be null");
280 public void testPoliciesDelete() throws Exception {
281 assertThatThrownBy(() -> {
282 new PdpProvider().deletePdpGroup(null, null, null);
283 }).hasMessage("dao is marked @NonNull but is null");
285 assertThatThrownBy(() -> {
286 new PdpProvider().deletePdpGroup(null, null, "version");
287 }).hasMessage("dao is marked @NonNull but is null");
289 assertThatThrownBy(() -> {
290 new PdpProvider().deletePdpGroup(null, "name", null);
291 }).hasMessage("dao is marked @NonNull but is null");
293 assertThatThrownBy(() -> {
294 new PdpProvider().deletePdpGroup(null, "name", "version");
295 }).hasMessage("dao is marked @NonNull but is null");
297 assertThatThrownBy(() -> {
298 new PdpProvider().deletePdpGroup(pfDao, null, "version");
299 }).hasMessage("name is marked @NonNull but is null");
301 assertThatThrownBy(() -> {
302 new PdpProvider().deletePdpGroup(pfDao, "name", null);
303 }).hasMessage("version is marked @NonNull but is null");
305 assertThatThrownBy(() -> {
306 new PdpProvider().deletePdpGroup(pfDao, "name", "version");
307 }).hasMessage("delete of PDP group \"name:version\" failed, PDP group does not exist");
309 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
310 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
312 PdpGroups createdPdpGroups0 = new PdpGroups();
313 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
314 String createdJson = standardCoder.encode(createdPdpGroups0);
315 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
317 PdpGroups gotPdpGroups0 = new PdpGroups();
318 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
320 String gotJson = standardCoder.encode(gotPdpGroups0);
321 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
323 PdpGroup deletedPdpGroup = new PdpProvider().deletePdpGroup(pfDao, "PdpGroup0", "1.2.3");
325 assertEquals(createdPdpGroups0.getGroups().get(0), deletedPdpGroup);
327 assertEquals(0, new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3").size());
329 assertThatThrownBy(() -> {
330 new PdpProvider().deletePdpGroup(pfDao, "PdpGroup0", "1.2.3");
331 }).hasMessage("delete of PDP group \"PdpGroup0:1.2.3\" failed, PDP group does not exist");
335 public void testPdpSubgroupUpdate() throws Exception {
336 assertThatThrownBy(() -> {
337 new PdpProvider().updatePdpSubGroup(null, null, null, null);
338 }).hasMessage("dao is marked @NonNull but is null");
340 assertThatThrownBy(() -> {
341 new PdpProvider().updatePdpSubGroup(null, null, null, new PdpSubGroup());
342 }).hasMessage("dao is marked @NonNull but is null");
344 assertThatThrownBy(() -> {
345 new PdpProvider().updatePdpSubGroup(null, null, "version", null);
346 }).hasMessage("dao is marked @NonNull but is null");
348 assertThatThrownBy(() -> {
349 new PdpProvider().updatePdpSubGroup(null, null, "version", new PdpSubGroup());
350 }).hasMessage("dao is marked @NonNull but is null");
352 assertThatThrownBy(() -> {
353 new PdpProvider().updatePdpSubGroup(null, "name", null, null);
354 }).hasMessage("dao is marked @NonNull but is null");
356 assertThatThrownBy(() -> {
357 new PdpProvider().updatePdpSubGroup(null, "name", null, new PdpSubGroup());
358 }).hasMessage("dao is marked @NonNull but is null");
360 assertThatThrownBy(() -> {
361 new PdpProvider().updatePdpSubGroup(null, "name", "version", null);
362 }).hasMessage("dao is marked @NonNull but is null");
364 assertThatThrownBy(() -> {
365 new PdpProvider().updatePdpSubGroup(null, "name", "version", new PdpSubGroup());
366 }).hasMessage("dao is marked @NonNull but is null");
368 assertThatThrownBy(() -> {
369 new PdpProvider().updatePdpSubGroup(pfDao, null, null, new PdpSubGroup());
370 }).hasMessage("pdpGroupName is marked @NonNull but is null");
372 assertThatThrownBy(() -> {
373 new PdpProvider().updatePdpSubGroup(pfDao, null, "version", null);
374 }).hasMessage("pdpGroupName is marked @NonNull but is null");
376 assertThatThrownBy(() -> {
377 new PdpProvider().updatePdpSubGroup(pfDao, null, "version", new PdpSubGroup());
378 }).hasMessage("pdpGroupName is marked @NonNull but is null");
380 assertThatThrownBy(() -> {
381 new PdpProvider().updatePdpSubGroup(pfDao, "name", null, null);
382 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
384 assertThatThrownBy(() -> {
385 new PdpProvider().updatePdpSubGroup(pfDao, "name", null, new PdpSubGroup());
386 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
388 assertThatThrownBy(() -> {
389 new PdpProvider().updatePdpSubGroup(pfDao, "name", "version", null);
390 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
392 assertThatThrownBy(() -> {
393 new PdpProvider().updatePdpSubGroup(pfDao, "name", "version", new PdpSubGroup());
394 }).hasMessage("parameter \"localName\" is null");
396 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
397 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
399 PdpGroups createdPdpGroups0 = new PdpGroups();
400 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
401 String createdJson = standardCoder.encode(createdPdpGroups0);
402 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
404 PdpGroups gotPdpGroups0 = new PdpGroups();
405 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
407 String gotJson = standardCoder.encode(gotPdpGroups0);
408 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
410 PdpSubGroup existingSubGroup = gotPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0);
411 existingSubGroup.setCurrentInstanceCount(10);
412 existingSubGroup.setDesiredInstanceCount(10);
413 new PdpProvider().updatePdpSubGroup(pfDao, "PdpGroup0", "1.2.3", existingSubGroup);
415 List<PdpGroup> afterUpdatePdpGroups = new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3");
416 assertEquals(10, afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getCurrentInstanceCount());
417 assertEquals(10, afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getDesiredInstanceCount());
419 existingSubGroup.setDesiredInstanceCount(-1);
420 assertThatThrownBy(() -> {
421 new PdpProvider().updatePdpSubGroup(pfDao, "PdpGroup0", "1.2.3", existingSubGroup);
422 }).hasMessageContaining("INVALID:the desired instance count of a PDP sub group may not be negative");
423 existingSubGroup.setDesiredInstanceCount(10);
427 public void testPdpUpdate() throws Exception {
428 assertThatThrownBy(() -> {
429 new PdpProvider().updatePdp(null, null, null, null, null);
430 }).hasMessage("dao is marked @NonNull but is null");
432 assertThatThrownBy(() -> {
433 new PdpProvider().updatePdp(null, null, null, null, new Pdp());
434 }).hasMessage("dao is marked @NonNull but is null");
436 assertThatThrownBy(() -> {
437 new PdpProvider().updatePdp(null, null, null, "TYPE", null);
438 }).hasMessage("dao is marked @NonNull but is null");
440 assertThatThrownBy(() -> {
441 new PdpProvider().updatePdp(null, null, null, "TYPE", new Pdp());
442 }).hasMessage("dao is marked @NonNull but is null");
444 assertThatThrownBy(() -> {
445 new PdpProvider().updatePdp(null, null, "version", null, null);
446 }).hasMessage("dao is marked @NonNull but is null");
448 assertThatThrownBy(() -> {
449 new PdpProvider().updatePdp(null, null, "version", null, new Pdp());
450 }).hasMessage("dao is marked @NonNull but is null");
452 assertThatThrownBy(() -> {
453 new PdpProvider().updatePdp(null, null, "version", "TYPE", null);
454 }).hasMessage("dao is marked @NonNull but is null");
456 assertThatThrownBy(() -> {
457 new PdpProvider().updatePdp(null, null, "version", "TYPE", new Pdp());
458 }).hasMessage("dao is marked @NonNull but is null");
460 assertThatThrownBy(() -> {
461 new PdpProvider().updatePdp(null, "name", null, null, null);
462 }).hasMessage("dao is marked @NonNull but is null");
464 assertThatThrownBy(() -> {
465 new PdpProvider().updatePdp(null, "name", null, null, new Pdp());
466 }).hasMessage("dao is marked @NonNull but is null");
468 assertThatThrownBy(() -> {
469 new PdpProvider().updatePdp(null, "name", null, "TYPE", null);
470 }).hasMessage("dao is marked @NonNull but is null");
472 assertThatThrownBy(() -> {
473 new PdpProvider().updatePdp(null, "name", null, "TYPE", new Pdp());
474 }).hasMessage("dao is marked @NonNull but is null");
476 assertThatThrownBy(() -> {
477 new PdpProvider().updatePdp(null, "name", "version", null, null);
478 }).hasMessage("dao is marked @NonNull but is null");
480 assertThatThrownBy(() -> {
481 new PdpProvider().updatePdp(null, "name", "version", null, new Pdp());
482 }).hasMessage("dao is marked @NonNull but is null");
484 assertThatThrownBy(() -> {
485 new PdpProvider().updatePdp(null, "name", "version", "TYPE", null);
486 }).hasMessage("dao is marked @NonNull but is null");
488 assertThatThrownBy(() -> {
489 new PdpProvider().updatePdp(null, "name", "version", "TYPE", new Pdp());
490 }).hasMessage("dao is marked @NonNull but is null");
492 assertThatThrownBy(() -> {
493 new PdpProvider().updatePdp(pfDao, null, null, null, null);
494 }).hasMessage("pdpGroupName is marked @NonNull but is null");
496 assertThatThrownBy(() -> {
497 new PdpProvider().updatePdp(pfDao, null, null, null, new Pdp());
498 }).hasMessage("pdpGroupName is marked @NonNull but is null");
500 assertThatThrownBy(() -> {
501 new PdpProvider().updatePdp(pfDao, null, null, "TYPE", null);
502 }).hasMessage("pdpGroupName is marked @NonNull but is null");
504 assertThatThrownBy(() -> {
505 new PdpProvider().updatePdp(pfDao, null, null, "TYPE", new Pdp());
506 }).hasMessage("pdpGroupName is marked @NonNull but is null");
508 assertThatThrownBy(() -> {
509 new PdpProvider().updatePdp(pfDao, null, "version", null, null);
510 }).hasMessage("pdpGroupName is marked @NonNull but is null");
512 assertThatThrownBy(() -> {
513 new PdpProvider().updatePdp(pfDao, null, "version", null, new Pdp());
514 }).hasMessage("pdpGroupName is marked @NonNull but is null");
516 assertThatThrownBy(() -> {
517 new PdpProvider().updatePdp(pfDao, null, "version", "TYPE", null);
518 }).hasMessage("pdpGroupName is marked @NonNull but is null");
520 assertThatThrownBy(() -> {
521 new PdpProvider().updatePdp(pfDao, null, "version", "TYPE", new Pdp());
522 }).hasMessage("pdpGroupName is marked @NonNull but is null");
524 assertThatThrownBy(() -> {
525 new PdpProvider().updatePdp(pfDao, "name", null, null, null);
526 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
528 assertThatThrownBy(() -> {
529 new PdpProvider().updatePdp(pfDao, "name", null, null, new Pdp());
530 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
532 assertThatThrownBy(() -> {
533 new PdpProvider().updatePdp(pfDao, "name", null, "TYPE", null);
534 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
536 assertThatThrownBy(() -> {
537 new PdpProvider().updatePdp(pfDao, "name", null, "TYPE", new Pdp());
538 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
540 assertThatThrownBy(() -> {
541 new PdpProvider().updatePdp(pfDao, "name", "version", null, null);
542 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
544 assertThatThrownBy(() -> {
545 new PdpProvider().updatePdp(pfDao, "name", "version", null, new Pdp());
546 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
548 assertThatThrownBy(() -> {
549 new PdpProvider().updatePdp(pfDao, "name", "version", "TYPE", null);
550 }).hasMessage("pdp is marked @NonNull but is null");
552 assertThatThrownBy(() -> {
553 new PdpProvider().updatePdp(pfDao, "name", "version", "TYPE", new Pdp());
554 }).hasMessage("parameter \"localName\" is null");
556 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
557 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
559 PdpGroups createdPdpGroups0 = new PdpGroups();
560 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
561 String createdJson = standardCoder.encode(createdPdpGroups0);
562 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
564 PdpGroups gotPdpGroups0 = new PdpGroups();
565 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
567 String gotJson = standardCoder.encode(gotPdpGroups0);
568 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
570 Pdp existingPdp = gotPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances().get(0);
571 existingPdp.setPdpState(PdpState.TEST);
572 existingPdp.setHealthy(PdpHealthStatus.TEST_IN_PROGRESS);
573 new PdpProvider().updatePdp(pfDao, "PdpGroup0", "1.2.3", "APEX", existingPdp);
575 List<PdpGroup> afterUpdatePdpGroups = new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3");
576 assertEquals(PdpState.TEST,
577 afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getPdpState());
578 assertEquals(PdpHealthStatus.TEST_IN_PROGRESS,
579 afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getHealthy());
581 existingPdp.setMessage("");
582 assertThatThrownBy(() -> {
583 new PdpProvider().updatePdp(pfDao, "PdpGroup0", "1.2.3", "APEX", existingPdp);
584 }).hasMessageContaining("INVALID:message may not be blank");
585 existingPdp.setMessage("A Message");
589 public void testGetPdpStatistics() throws PfModelException {
590 assertThatThrownBy(() -> {
591 new PdpProvider().getPdpStatistics(null, null, null);
592 }).hasMessage("dao is marked @NonNull but is null");
594 assertThatThrownBy(() -> {
595 new PdpProvider().getPdpStatistics(null, null, "version");
596 }).hasMessage("dao is marked @NonNull but is null");
598 assertThatThrownBy(() -> {
599 new PdpProvider().getPdpStatistics(null, "name", null);
600 }).hasMessage("dao is marked @NonNull but is null");
602 assertEquals(0, new PdpProvider().getPdpStatistics(pfDao, "name", "version").size());
606 public void testUpdatePdpStatistics() throws PfModelException {
607 assertThatThrownBy(() -> {
608 new PdpProvider().updatePdpStatistics(null, null, null, null, null, null);
609 }).hasMessage("dao is marked @NonNull but is null");
611 assertThatThrownBy(() -> {
612 new PdpProvider().updatePdpStatistics(null, null, null, null, null, new PdpStatistics());
613 }).hasMessage("dao is marked @NonNull but is null");
615 assertThatThrownBy(() -> {
616 new PdpProvider().updatePdpStatistics(null, null, null, null, "inst", null);
617 }).hasMessage("dao is marked @NonNull but is null");
619 assertThatThrownBy(() -> {
620 new PdpProvider().updatePdpStatistics(null, null, null, null, "inst", new PdpStatistics());
621 }).hasMessage("dao is marked @NonNull but is null");
623 assertThatThrownBy(() -> {
624 new PdpProvider().updatePdpStatistics(null, null, null, "TYPE", null, null);
625 }).hasMessage("dao is marked @NonNull but is null");
627 assertThatThrownBy(() -> {
628 new PdpProvider().updatePdpStatistics(null, null, null, "TYPE", null, new PdpStatistics());
629 }).hasMessage("dao is marked @NonNull but is null");
631 assertThatThrownBy(() -> {
632 new PdpProvider().updatePdpStatistics(null, null, null, "TYPE", "inst", null);
633 }).hasMessage("dao is marked @NonNull but is null");
635 assertThatThrownBy(() -> {
636 new PdpProvider().updatePdpStatistics(null, null, null, "TYPE", "inst", new PdpStatistics());
637 }).hasMessage("dao is marked @NonNull but is null");
639 assertThatThrownBy(() -> {
640 new PdpProvider().updatePdpStatistics(null, null, "version", null, null, null);
641 }).hasMessage("dao is marked @NonNull but is null");
643 assertThatThrownBy(() -> {
644 new PdpProvider().updatePdpStatistics(null, null, "version", null, null, new PdpStatistics());
645 }).hasMessage("dao is marked @NonNull but is null");
647 assertThatThrownBy(() -> {
648 new PdpProvider().updatePdpStatistics(null, null, "version", null, "inst", null);
649 }).hasMessage("dao is marked @NonNull but is null");
651 assertThatThrownBy(() -> {
652 new PdpProvider().updatePdpStatistics(null, null, "version", null, "inst", new PdpStatistics());
653 }).hasMessage("dao is marked @NonNull but is null");
655 assertThatThrownBy(() -> {
656 new PdpProvider().updatePdpStatistics(null, null, "version", "TYPE", null, null);
657 }).hasMessage("dao is marked @NonNull but is null");
659 assertThatThrownBy(() -> {
660 new PdpProvider().updatePdpStatistics(null, null, "version", "TYPE", null, new PdpStatistics());
661 }).hasMessage("dao is marked @NonNull but is null");
663 assertThatThrownBy(() -> {
664 new PdpProvider().updatePdpStatistics(null, null, "version", "TYPE", "inst", null);
665 }).hasMessage("dao is marked @NonNull but is null");
667 assertThatThrownBy(() -> {
668 new PdpProvider().updatePdpStatistics(null, null, "version", "TYPE", "inst", new PdpStatistics());
669 }).hasMessage("dao is marked @NonNull but is null");
671 assertThatThrownBy(() -> {
672 new PdpProvider().updatePdpStatistics(null, "name", null, null, null, null);
673 }).hasMessage("dao is marked @NonNull but is null");
675 assertThatThrownBy(() -> {
676 new PdpProvider().updatePdpStatistics(null, "name", null, null, null, new PdpStatistics());
677 }).hasMessage("dao is marked @NonNull but is null");
679 assertThatThrownBy(() -> {
680 new PdpProvider().updatePdpStatistics(null, "name", null, null, "inst", null);
681 }).hasMessage("dao is marked @NonNull but is null");
683 assertThatThrownBy(() -> {
684 new PdpProvider().updatePdpStatistics(null, "name", null, null, "inst", new PdpStatistics());
685 }).hasMessage("dao is marked @NonNull but is null");
687 assertThatThrownBy(() -> {
688 new PdpProvider().updatePdpStatistics(null, "name", null, "TYPE", null, null);
689 }).hasMessage("dao is marked @NonNull but is null");
691 assertThatThrownBy(() -> {
692 new PdpProvider().updatePdpStatistics(null, "name", null, "TYPE", null, new PdpStatistics());
693 }).hasMessage("dao is marked @NonNull but is null");
695 assertThatThrownBy(() -> {
696 new PdpProvider().updatePdpStatistics(null, "name", null, "TYPE", "inst", null);
697 }).hasMessage("dao is marked @NonNull but is null");
699 assertThatThrownBy(() -> {
700 new PdpProvider().updatePdpStatistics(null, "name", null, "TYPE", "inst", new PdpStatistics());
701 }).hasMessage("dao is marked @NonNull but is null");
703 assertThatThrownBy(() -> {
704 new PdpProvider().updatePdpStatistics(null, "name", "version", null, null, null);
705 }).hasMessage("dao is marked @NonNull but is null");
707 assertThatThrownBy(() -> {
708 new PdpProvider().updatePdpStatistics(null, "name", "version", null, null, new PdpStatistics());
709 }).hasMessage("dao is marked @NonNull but is null");
711 assertThatThrownBy(() -> {
712 new PdpProvider().updatePdpStatistics(null, "name", "version", null, "inst", null);
713 }).hasMessage("dao is marked @NonNull but is null");
715 assertThatThrownBy(() -> {
716 new PdpProvider().updatePdpStatistics(null, "name", "version", null, "inst", new PdpStatistics());
717 }).hasMessage("dao is marked @NonNull but is null");
719 assertThatThrownBy(() -> {
720 new PdpProvider().updatePdpStatistics(null, "name", "version", "TYPE", null, null);
721 }).hasMessage("dao is marked @NonNull but is null");
723 assertThatThrownBy(() -> {
724 new PdpProvider().updatePdpStatistics(null, "name", "version", "TYPE", null, new PdpStatistics());
725 }).hasMessage("dao is marked @NonNull but is null");
727 assertThatThrownBy(() -> {
728 new PdpProvider().updatePdpStatistics(null, "name", "version", "TYPE", "inst", null);
729 }).hasMessage("dao is marked @NonNull but is null");
731 assertThatThrownBy(() -> {
732 new PdpProvider().updatePdpStatistics(null, "name", "version", "TYPE", "inst", new PdpStatistics());
733 }).hasMessage("dao is marked @NonNull but is null");
735 assertThatThrownBy(() -> {
736 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, null, null);
737 }).hasMessage("pdpGroupName is marked @NonNull but is null");
739 assertThatThrownBy(() -> {
740 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, null, new PdpStatistics());
741 }).hasMessage("pdpGroupName is marked @NonNull but is null");
743 assertThatThrownBy(() -> {
744 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, "inst", null);
745 }).hasMessage("pdpGroupName is marked @NonNull but is null");
747 assertThatThrownBy(() -> {
748 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, "inst", new PdpStatistics());
749 }).hasMessage("pdpGroupName is marked @NonNull but is null");
751 assertThatThrownBy(() -> {
752 new PdpProvider().updatePdpStatistics(pfDao, null, null, "TYPE", null, null);
753 }).hasMessage("pdpGroupName is marked @NonNull but is null");
755 assertThatThrownBy(() -> {
756 new PdpProvider().updatePdpStatistics(pfDao, null, null, "TYPE", null, new PdpStatistics());
757 }).hasMessage("pdpGroupName is marked @NonNull but is null");
759 assertThatThrownBy(() -> {
760 new PdpProvider().updatePdpStatistics(pfDao, null, null, "TYPE", "inst", null);
761 }).hasMessage("pdpGroupName is marked @NonNull but is null");
763 assertThatThrownBy(() -> {
764 new PdpProvider().updatePdpStatistics(pfDao, null, null, "TYPE", "inst", new PdpStatistics());
765 }).hasMessage("pdpGroupName is marked @NonNull but is null");
767 assertThatThrownBy(() -> {
768 new PdpProvider().updatePdpStatistics(pfDao, null, "version", null, null, null);
769 }).hasMessage("pdpGroupName is marked @NonNull but is null");
771 assertThatThrownBy(() -> {
772 new PdpProvider().updatePdpStatistics(pfDao, null, "version", null, null, new PdpStatistics());
773 }).hasMessage("pdpGroupName is marked @NonNull but is null");
775 assertThatThrownBy(() -> {
776 new PdpProvider().updatePdpStatistics(pfDao, null, "version", null, "inst", null);
777 }).hasMessage("pdpGroupName is marked @NonNull but is null");
779 assertThatThrownBy(() -> {
780 new PdpProvider().updatePdpStatistics(pfDao, null, "version", null, "inst", new PdpStatistics());
781 }).hasMessage("pdpGroupName is marked @NonNull but is null");
783 assertThatThrownBy(() -> {
784 new PdpProvider().updatePdpStatistics(pfDao, null, "version", "TYPE", null, null);
785 }).hasMessage("pdpGroupName is marked @NonNull but is null");
787 assertThatThrownBy(() -> {
788 new PdpProvider().updatePdpStatistics(pfDao, null, "version", "TYPE", null, new PdpStatistics());
789 }).hasMessage("pdpGroupName is marked @NonNull but is null");
791 assertThatThrownBy(() -> {
792 new PdpProvider().updatePdpStatistics(pfDao, null, "version", "TYPE", "inst", null);
793 }).hasMessage("pdpGroupName is marked @NonNull but is null");
795 assertThatThrownBy(() -> {
796 new PdpProvider().updatePdpStatistics(pfDao, null, "version", "TYPE", "inst", new PdpStatistics());
797 }).hasMessage("pdpGroupName is marked @NonNull but is null");
799 assertThatThrownBy(() -> {
800 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, null, null);
801 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
803 assertThatThrownBy(() -> {
804 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, null, new PdpStatistics());
805 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
807 assertThatThrownBy(() -> {
808 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, "inst", null);
809 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
811 assertThatThrownBy(() -> {
812 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, "inst", new PdpStatistics());
813 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
815 assertThatThrownBy(() -> {
816 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "TYPE", null, null);
817 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
819 assertThatThrownBy(() -> {
820 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "TYPE", null, new PdpStatistics());
821 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
823 assertThatThrownBy(() -> {
824 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "TYPE", "inst", null);
825 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
827 assertThatThrownBy(() -> {
828 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "TYPE", "inst", new PdpStatistics());
829 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
831 assertThatThrownBy(() -> {
832 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", null, null, null);
833 }).hasMessage("pdpType is marked @NonNull but is null");
835 assertThatThrownBy(() -> {
836 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", null, null, new PdpStatistics());
837 }).hasMessage("pdpType is marked @NonNull but is null");
839 assertThatThrownBy(() -> {
840 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", null, "inst", null);
841 }).hasMessage("pdpType is marked @NonNull but is null");
843 assertThatThrownBy(() -> {
844 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", null, "inst", new PdpStatistics());
845 }).hasMessage("pdpType is marked @NonNull but is null");
847 assertThatThrownBy(() -> {
848 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", "TYPE", null, null);
849 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
851 assertThatThrownBy(() -> {
852 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", "TYPE", null, new PdpStatistics());
853 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
855 assertThatThrownBy(() -> {
856 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", "TYPE", "inst", null);
857 }).hasMessage("pdpStatistics is marked @NonNull but is null");
859 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", "TYPE", "inst", new PdpStatistics());