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.sql.Connection;
30 import java.sql.DriverManager;
31 import java.util.ArrayList;
32 import java.util.List;
34 import org.junit.After;
35 import org.junit.Before;
36 import org.junit.Test;
37 import org.onap.policy.common.utils.coder.StandardCoder;
38 import org.onap.policy.common.utils.resources.ResourceUtils;
39 import org.onap.policy.models.base.PfModelException;
40 import org.onap.policy.models.dao.DaoParameters;
41 import org.onap.policy.models.dao.PfDao;
42 import org.onap.policy.models.dao.PfDaoFactory;
43 import org.onap.policy.models.dao.impl.DefaultPfDao;
44 import org.onap.policy.models.pdp.concepts.Pdp;
45 import org.onap.policy.models.pdp.concepts.PdpGroup;
46 import org.onap.policy.models.pdp.concepts.PdpGroupFilter;
47 import org.onap.policy.models.pdp.concepts.PdpGroups;
48 import org.onap.policy.models.pdp.concepts.PdpStatistics;
49 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
50 import org.onap.policy.models.pdp.enums.PdpHealthStatus;
51 import org.onap.policy.models.pdp.enums.PdpState;
52 import org.onap.policy.models.pdp.persistence.provider.PdpProvider;
53 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier;
54 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
55 import org.onap.policy.models.tosca.simple.provider.SimpleToscaProvider;
58 * Test the {@link SimpleToscaProvider} class.
60 * @author Liam Fallon (liam.fallon@est.tech)
62 public class PdpProviderTest {
63 private Connection connection;
65 private StandardCoder standardCoder;
69 * Set up the DAO towards the database.
71 * @throws Exception on database errors
74 public void setupDao() throws Exception {
75 // Use the JDBC UI "jdbc:h2:mem:testdb" to test towards the h2 database
76 // Use the JDBC UI "jdbc:mariadb://localhost:3306/policy" to test towards a locally installed mariadb instance
77 connection = DriverManager.getConnection("jdbc:h2:mem:testdb", "policy", "P01icY");
79 final DaoParameters daoParameters = new DaoParameters();
80 daoParameters.setPluginClass(DefaultPfDao.class.getCanonicalName());
82 // Use the persistence unit ToscaConceptTest to test towards the h2 database
83 // Use the persistence unit ToscaConceptMariaDBTest to test towards a locally installed mariadb instance
84 daoParameters.setPersistenceUnit("ToscaConceptTest");
86 pfDao = new PfDaoFactory().createPfDao(daoParameters);
87 pfDao.init(daoParameters);
94 public void setupGson() {
95 standardCoder = new StandardCoder();
99 public void teardown() throws Exception {
105 public void testGroupsGet() throws Exception {
106 assertThatThrownBy(() -> {
107 new PdpProvider().getPdpGroups(null, null, null);
108 }).hasMessage("dao is marked @NonNull but is null");
110 assertThatThrownBy(() -> {
111 new PdpProvider().getPdpGroups(null, null, "version");
112 }).hasMessage("dao is marked @NonNull but is null");
114 assertThatThrownBy(() -> {
115 new PdpProvider().getPdpGroups(null, "name", "version");
116 }).hasMessage("dao is marked @NonNull but is null");
118 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
119 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
121 PdpGroups createdPdpGroups0 = new PdpGroups();
122 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
123 String createdJson = standardCoder.encode(createdPdpGroups0);
124 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
126 PdpGroups gotPdpGroups0 = new PdpGroups();
127 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
129 String gotJson = standardCoder.encode(gotPdpGroups0);
131 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
135 public void testFilteredPdpGroupGet() throws Exception {
136 assertThatThrownBy(() -> {
137 new PdpProvider().getFilteredPdpGroups(null, null);
138 }).hasMessage("dao is marked @NonNull but is null");
140 assertThatThrownBy(() -> {
141 new PdpProvider().getFilteredPdpGroups(null, PdpGroupFilter.builder().build());
142 }).hasMessage("dao is marked @NonNull but is null");
144 assertThatThrownBy(() -> {
145 new PdpProvider().getFilteredPdpGroups(pfDao, null);
146 }).hasMessage("filter is marked @NonNull but is null");
148 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroupsForFiltering.json");
149 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
151 assertEquals(5, new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()).size());
153 List<ToscaPolicyTypeIdentifier> policyTypeList = new ArrayList<>();
154 policyTypeList.add(new ToscaPolicyTypeIdentifier("policy.type.0", "1.2.3"));
156 List<ToscaPolicyIdentifier> policyList = new ArrayList<>();
157 policyList.add(new ToscaPolicyIdentifier("Policy0", "4.5.6"));
160 final PdpGroupFilter filter = PdpGroupFilter.builder()
161 .groupState(PdpState.PASSIVE)
164 .matchPoliciesExactly(false)
165 .matchPolicyTypesExactly(false)
166 .pdpState(PdpState.PASSIVE)
168 .policyTypeList(policyTypeList)
169 .policyList(policyList)
172 assertEquals(1, new PdpProvider().getFilteredPdpGroups(pfDao, filter).size());
176 public void testGroupsCreate() throws Exception {
177 assertThatThrownBy(() -> {
178 new PdpProvider().createPdpGroups(null, null);
179 }).hasMessage("dao is marked @NonNull but is null");
181 assertThatThrownBy(() -> {
182 new PdpProvider().createPdpGroups(null, new ArrayList<>());
183 }).hasMessage("dao is marked @NonNull but is null");
185 assertThatThrownBy(() -> {
186 new PdpProvider().createPdpGroups(pfDao, null);
187 }).hasMessage("pdpGroups is marked @NonNull but is null");
189 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
190 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
192 PdpGroups createdPdpGroups0 = new PdpGroups();
193 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
194 String createdJson = standardCoder.encode(createdPdpGroups0);
195 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
197 PdpGroups gotPdpGroups0 = new PdpGroups();
198 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
200 String gotJson = standardCoder.encode(gotPdpGroups0);
201 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
203 pdpGroups0.getGroups().get(0).setPdpGroupState(null);
204 assertThatThrownBy(() -> {
205 new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups());
206 }).hasMessageContaining("INVALID:pdpGroupState may not be null");
210 public void testGroupsCreateNoPdp() throws Exception {
211 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroupsNoPDPs.json");
213 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
215 PdpGroups createdPdpGroups0 = new PdpGroups();
216 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
217 assertNotEquals(pdpGroups0, createdPdpGroups0);
218 pdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).setPdpInstances(new ArrayList<>());
219 String originalTweakedJson = standardCoder.encode(pdpGroups0);
220 String createdJson = standardCoder.encode(createdPdpGroups0);
221 assertEquals(originalTweakedJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
223 PdpGroups gotPdpGroups0 = new PdpGroups();
224 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "TestPdpGroup", "1.2.3"));
226 String gotJson = standardCoder.encode(gotPdpGroups0);
227 assertEquals(originalTweakedJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
231 public void testGroupsUpdate() throws Exception {
232 assertThatThrownBy(() -> {
233 new PdpProvider().updatePdpGroups(null, null);
234 }).hasMessage("dao is marked @NonNull but is null");
236 assertThatThrownBy(() -> {
237 new PdpProvider().updatePdpGroups(null, new ArrayList<>());
238 }).hasMessage("dao is marked @NonNull but is null");
240 assertThatThrownBy(() -> {
241 new PdpProvider().updatePdpGroups(pfDao, null);
242 }).hasMessage("pdpGroups is marked @NonNull but is null");
244 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
245 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
247 PdpGroups createdPdpGroups0 = new PdpGroups();
248 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
249 String createdJson = standardCoder.encode(createdPdpGroups0);
250 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
252 PdpGroups gotPdpGroups0 = new PdpGroups();
253 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
255 String gotJson = standardCoder.encode(gotPdpGroups0);
256 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
258 String updateJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0Update.json");
259 PdpGroups updatePdpGroups0 = standardCoder.decode(updateJson, PdpGroups.class);
261 PdpGroups updatedPdpGroups0 = new PdpGroups();
262 updatedPdpGroups0.setGroups(new PdpProvider().updatePdpGroups(pfDao, updatePdpGroups0.getGroups()));
264 List<Pdp> beforePdpInstances = updatePdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances();
265 List<Pdp> afterPdpInstances = updatedPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances();
266 assertTrue(beforePdpInstances.containsAll(afterPdpInstances));
268 pdpGroups0.getGroups().get(0).setPdpGroupState(null);
269 assertThatThrownBy(() -> {
270 new PdpProvider().updatePdpGroups(pfDao, pdpGroups0.getGroups());
271 }).hasMessageContaining("INVALID:pdpGroupState may not be null");
275 public void testPoliciesDelete() throws Exception {
276 assertThatThrownBy(() -> {
277 new PdpProvider().deletePdpGroup(null, null, null);
278 }).hasMessage("dao is marked @NonNull but is null");
280 assertThatThrownBy(() -> {
281 new PdpProvider().deletePdpGroup(null, null, "version");
282 }).hasMessage("dao is marked @NonNull but is null");
284 assertThatThrownBy(() -> {
285 new PdpProvider().deletePdpGroup(null, "name", null);
286 }).hasMessage("dao is marked @NonNull but is null");
288 assertThatThrownBy(() -> {
289 new PdpProvider().deletePdpGroup(null, "name", "version");
290 }).hasMessage("dao is marked @NonNull but is null");
292 assertThatThrownBy(() -> {
293 new PdpProvider().deletePdpGroup(pfDao, null, "version");
294 }).hasMessage("name is marked @NonNull but is null");
296 assertThatThrownBy(() -> {
297 new PdpProvider().deletePdpGroup(pfDao, "name", null);
298 }).hasMessage("version is marked @NonNull but is null");
300 assertThatThrownBy(() -> {
301 new PdpProvider().deletePdpGroup(pfDao, "name", "version");
302 }).hasMessage("delete of PDP group \"name:version\" failed, PDP group does not exist");
304 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
305 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
307 PdpGroups createdPdpGroups0 = new PdpGroups();
308 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
309 String createdJson = standardCoder.encode(createdPdpGroups0);
310 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
312 PdpGroups gotPdpGroups0 = new PdpGroups();
313 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
315 String gotJson = standardCoder.encode(gotPdpGroups0);
316 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
318 PdpGroup deletedPdpGroup = new PdpProvider().deletePdpGroup(pfDao, "PdpGroup0", "1.2.3");
320 assertEquals(createdPdpGroups0.getGroups().get(0), deletedPdpGroup);
322 assertEquals(0, new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3").size());
324 assertThatThrownBy(() -> {
325 new PdpProvider().deletePdpGroup(pfDao, "PdpGroup0", "1.2.3");
326 }).hasMessage("delete of PDP group \"PdpGroup0:1.2.3\" failed, PDP group does not exist");
330 public void testPdpSubgroupUpdate() throws Exception {
331 assertThatThrownBy(() -> {
332 new PdpProvider().updatePdpSubGroup(null, null, null, null);
333 }).hasMessage("dao is marked @NonNull but is null");
335 assertThatThrownBy(() -> {
336 new PdpProvider().updatePdpSubGroup(null, null, null, new PdpSubGroup());
337 }).hasMessage("dao is marked @NonNull but is null");
339 assertThatThrownBy(() -> {
340 new PdpProvider().updatePdpSubGroup(null, null, "version", null);
341 }).hasMessage("dao is marked @NonNull but is null");
343 assertThatThrownBy(() -> {
344 new PdpProvider().updatePdpSubGroup(null, null, "version", new PdpSubGroup());
345 }).hasMessage("dao is marked @NonNull but is null");
347 assertThatThrownBy(() -> {
348 new PdpProvider().updatePdpSubGroup(null, "name", null, null);
349 }).hasMessage("dao is marked @NonNull but is null");
351 assertThatThrownBy(() -> {
352 new PdpProvider().updatePdpSubGroup(null, "name", null, new PdpSubGroup());
353 }).hasMessage("dao is marked @NonNull but is null");
355 assertThatThrownBy(() -> {
356 new PdpProvider().updatePdpSubGroup(null, "name", "version", null);
357 }).hasMessage("dao is marked @NonNull but is null");
359 assertThatThrownBy(() -> {
360 new PdpProvider().updatePdpSubGroup(null, "name", "version", new PdpSubGroup());
361 }).hasMessage("dao is marked @NonNull but is null");
363 assertThatThrownBy(() -> {
364 new PdpProvider().updatePdpSubGroup(pfDao, null, null, new PdpSubGroup());
365 }).hasMessage("pdpGroupName is marked @NonNull but is null");
367 assertThatThrownBy(() -> {
368 new PdpProvider().updatePdpSubGroup(pfDao, null, "version", null);
369 }).hasMessage("pdpGroupName is marked @NonNull but is null");
371 assertThatThrownBy(() -> {
372 new PdpProvider().updatePdpSubGroup(pfDao, null, "version", new PdpSubGroup());
373 }).hasMessage("pdpGroupName is marked @NonNull but is null");
375 assertThatThrownBy(() -> {
376 new PdpProvider().updatePdpSubGroup(pfDao, "name", null, null);
377 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
379 assertThatThrownBy(() -> {
380 new PdpProvider().updatePdpSubGroup(pfDao, "name", null, new PdpSubGroup());
381 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
383 assertThatThrownBy(() -> {
384 new PdpProvider().updatePdpSubGroup(pfDao, "name", "version", null);
385 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
387 assertThatThrownBy(() -> {
388 new PdpProvider().updatePdpSubGroup(pfDao, "name", "version", new PdpSubGroup());
389 }).hasMessage("parameter \"localName\" is null");
391 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
392 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
394 PdpGroups createdPdpGroups0 = new PdpGroups();
395 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
396 String createdJson = standardCoder.encode(createdPdpGroups0);
397 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
399 PdpGroups gotPdpGroups0 = new PdpGroups();
400 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
402 String gotJson = standardCoder.encode(gotPdpGroups0);
403 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
405 PdpSubGroup existingSubGroup = gotPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0);
406 existingSubGroup.setCurrentInstanceCount(10);
407 existingSubGroup.setDesiredInstanceCount(10);
408 new PdpProvider().updatePdpSubGroup(pfDao, "PdpGroup0", "1.2.3", existingSubGroup);
410 List<PdpGroup> afterUpdatePdpGroups = new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3");
411 assertEquals(10, afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getCurrentInstanceCount());
412 assertEquals(10, afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getDesiredInstanceCount());
414 existingSubGroup.setDesiredInstanceCount(-1);
415 assertThatThrownBy(() -> {
416 new PdpProvider().updatePdpSubGroup(pfDao, "PdpGroup0", "1.2.3", existingSubGroup);
417 }).hasMessageContaining("INVALID:the desired instance count of a PDP sub group may not be negative");
418 existingSubGroup.setDesiredInstanceCount(10);
420 existingSubGroup.setPdpType("Loooooooooooooooooooooooooooooooooooooooo"
421 + "ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongKey");
422 assertThatThrownBy(() -> {
423 new PdpProvider().updatePdpSubGroup(pfDao, "PdpGroup0", "1.2.3", existingSubGroup);
424 }).hasMessageContaining("Value too long for column");
425 existingSubGroup.setPdpType("APEX");
429 public void testPdpUpdate() throws Exception {
430 assertThatThrownBy(() -> {
431 new PdpProvider().updatePdp(null, null, null, null, null);
432 }).hasMessage("dao is marked @NonNull but is null");
434 assertThatThrownBy(() -> {
435 new PdpProvider().updatePdp(null, null, null, null, new Pdp());
436 }).hasMessage("dao is marked @NonNull but is null");
438 assertThatThrownBy(() -> {
439 new PdpProvider().updatePdp(null, null, null, "TYPE", null);
440 }).hasMessage("dao is marked @NonNull but is null");
442 assertThatThrownBy(() -> {
443 new PdpProvider().updatePdp(null, null, null, "TYPE", new Pdp());
444 }).hasMessage("dao is marked @NonNull but is null");
446 assertThatThrownBy(() -> {
447 new PdpProvider().updatePdp(null, null, "version", null, null);
448 }).hasMessage("dao is marked @NonNull but is null");
450 assertThatThrownBy(() -> {
451 new PdpProvider().updatePdp(null, null, "version", null, new Pdp());
452 }).hasMessage("dao is marked @NonNull but is null");
454 assertThatThrownBy(() -> {
455 new PdpProvider().updatePdp(null, null, "version", "TYPE", null);
456 }).hasMessage("dao is marked @NonNull but is null");
458 assertThatThrownBy(() -> {
459 new PdpProvider().updatePdp(null, null, "version", "TYPE", new Pdp());
460 }).hasMessage("dao is marked @NonNull but is null");
462 assertThatThrownBy(() -> {
463 new PdpProvider().updatePdp(null, "name", null, null, null);
464 }).hasMessage("dao is marked @NonNull but is null");
466 assertThatThrownBy(() -> {
467 new PdpProvider().updatePdp(null, "name", null, null, new Pdp());
468 }).hasMessage("dao is marked @NonNull but is null");
470 assertThatThrownBy(() -> {
471 new PdpProvider().updatePdp(null, "name", null, "TYPE", null);
472 }).hasMessage("dao is marked @NonNull but is null");
474 assertThatThrownBy(() -> {
475 new PdpProvider().updatePdp(null, "name", null, "TYPE", new Pdp());
476 }).hasMessage("dao is marked @NonNull but is null");
478 assertThatThrownBy(() -> {
479 new PdpProvider().updatePdp(null, "name", "version", null, null);
480 }).hasMessage("dao is marked @NonNull but is null");
482 assertThatThrownBy(() -> {
483 new PdpProvider().updatePdp(null, "name", "version", null, new Pdp());
484 }).hasMessage("dao is marked @NonNull but is null");
486 assertThatThrownBy(() -> {
487 new PdpProvider().updatePdp(null, "name", "version", "TYPE", null);
488 }).hasMessage("dao is marked @NonNull but is null");
490 assertThatThrownBy(() -> {
491 new PdpProvider().updatePdp(null, "name", "version", "TYPE", new Pdp());
492 }).hasMessage("dao is marked @NonNull but is null");
494 assertThatThrownBy(() -> {
495 new PdpProvider().updatePdp(pfDao, null, null, null, null);
496 }).hasMessage("pdpGroupName is marked @NonNull but is null");
498 assertThatThrownBy(() -> {
499 new PdpProvider().updatePdp(pfDao, null, null, null, new Pdp());
500 }).hasMessage("pdpGroupName is marked @NonNull but is null");
502 assertThatThrownBy(() -> {
503 new PdpProvider().updatePdp(pfDao, null, null, "TYPE", null);
504 }).hasMessage("pdpGroupName is marked @NonNull but is null");
506 assertThatThrownBy(() -> {
507 new PdpProvider().updatePdp(pfDao, null, null, "TYPE", new Pdp());
508 }).hasMessage("pdpGroupName is marked @NonNull but is null");
510 assertThatThrownBy(() -> {
511 new PdpProvider().updatePdp(pfDao, null, "version", null, null);
512 }).hasMessage("pdpGroupName is marked @NonNull but is null");
514 assertThatThrownBy(() -> {
515 new PdpProvider().updatePdp(pfDao, null, "version", null, new Pdp());
516 }).hasMessage("pdpGroupName is marked @NonNull but is null");
518 assertThatThrownBy(() -> {
519 new PdpProvider().updatePdp(pfDao, null, "version", "TYPE", null);
520 }).hasMessage("pdpGroupName is marked @NonNull but is null");
522 assertThatThrownBy(() -> {
523 new PdpProvider().updatePdp(pfDao, null, "version", "TYPE", new Pdp());
524 }).hasMessage("pdpGroupName is marked @NonNull but is null");
526 assertThatThrownBy(() -> {
527 new PdpProvider().updatePdp(pfDao, "name", null, null, null);
528 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
530 assertThatThrownBy(() -> {
531 new PdpProvider().updatePdp(pfDao, "name", null, null, new Pdp());
532 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
534 assertThatThrownBy(() -> {
535 new PdpProvider().updatePdp(pfDao, "name", null, "TYPE", null);
536 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
538 assertThatThrownBy(() -> {
539 new PdpProvider().updatePdp(pfDao, "name", null, "TYPE", new Pdp());
540 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
542 assertThatThrownBy(() -> {
543 new PdpProvider().updatePdp(pfDao, "name", "version", null, null);
544 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
546 assertThatThrownBy(() -> {
547 new PdpProvider().updatePdp(pfDao, "name", "version", null, new Pdp());
548 }).hasMessage("pdpSubGroup is marked @NonNull but is null");
550 assertThatThrownBy(() -> {
551 new PdpProvider().updatePdp(pfDao, "name", "version", "TYPE", null);
552 }).hasMessage("pdp is marked @NonNull but is null");
554 assertThatThrownBy(() -> {
555 new PdpProvider().updatePdp(pfDao, "name", "version", "TYPE", new Pdp());
556 }).hasMessage("parameter \"localName\" is null");
558 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json");
559 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
561 PdpGroups createdPdpGroups0 = new PdpGroups();
562 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
563 String createdJson = standardCoder.encode(createdPdpGroups0);
564 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
566 PdpGroups gotPdpGroups0 = new PdpGroups();
567 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3"));
569 String gotJson = standardCoder.encode(gotPdpGroups0);
570 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
572 Pdp existingPdp = gotPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances().get(0);
573 existingPdp.setPdpState(PdpState.TEST);
574 existingPdp.setHealthy(PdpHealthStatus.TEST_IN_PROGRESS);
575 new PdpProvider().updatePdp(pfDao, "PdpGroup0", "1.2.3", "APEX", existingPdp);
577 List<PdpGroup> afterUpdatePdpGroups = new PdpProvider().getPdpGroups(pfDao, "PdpGroup0", "1.2.3");
578 assertEquals(PdpState.TEST,
579 afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getPdpState());
580 assertEquals(PdpHealthStatus.TEST_IN_PROGRESS,
581 afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getHealthy());
583 existingPdp.setMessage("");
584 assertThatThrownBy(() -> {
585 new PdpProvider().updatePdp(pfDao, "PdpGroup0", "1.2.3", "APEX", existingPdp);
586 }).hasMessageContaining("INVALID:message may not be blank");
587 existingPdp.setMessage("A Message");
591 public void testGetPdpStatistics() throws PfModelException {
592 assertThatThrownBy(() -> {
593 new PdpProvider().getPdpStatistics(null, null, null);
594 }).hasMessage("dao is marked @NonNull but is null");
596 assertThatThrownBy(() -> {
597 new PdpProvider().getPdpStatistics(null, null, "version");
598 }).hasMessage("dao is marked @NonNull but is null");
600 assertThatThrownBy(() -> {
601 new PdpProvider().getPdpStatistics(null, "name", null);
602 }).hasMessage("dao is marked @NonNull but is null");
604 assertEquals(0, new PdpProvider().getPdpStatistics(pfDao, "name", "version").size());
608 public void testUpdatePdpStatistics() throws PfModelException {
609 assertThatThrownBy(() -> {
610 new PdpProvider().updatePdpStatistics(null, null, null, null, null, null);
611 }).hasMessage("dao is marked @NonNull but is null");
613 assertThatThrownBy(() -> {
614 new PdpProvider().updatePdpStatistics(null, null, null, null, null, new PdpStatistics());
615 }).hasMessage("dao is marked @NonNull but is null");
617 assertThatThrownBy(() -> {
618 new PdpProvider().updatePdpStatistics(null, null, null, null, "inst", null);
619 }).hasMessage("dao is marked @NonNull but is null");
621 assertThatThrownBy(() -> {
622 new PdpProvider().updatePdpStatistics(null, null, null, null, "inst", new PdpStatistics());
623 }).hasMessage("dao is marked @NonNull but is null");
625 assertThatThrownBy(() -> {
626 new PdpProvider().updatePdpStatistics(null, null, null, "TYPE", null, null);
627 }).hasMessage("dao is marked @NonNull but is null");
629 assertThatThrownBy(() -> {
630 new PdpProvider().updatePdpStatistics(null, null, null, "TYPE", null, new PdpStatistics());
631 }).hasMessage("dao is marked @NonNull but is null");
633 assertThatThrownBy(() -> {
634 new PdpProvider().updatePdpStatistics(null, null, null, "TYPE", "inst", null);
635 }).hasMessage("dao is marked @NonNull but is null");
637 assertThatThrownBy(() -> {
638 new PdpProvider().updatePdpStatistics(null, null, null, "TYPE", "inst", new PdpStatistics());
639 }).hasMessage("dao is marked @NonNull but is null");
641 assertThatThrownBy(() -> {
642 new PdpProvider().updatePdpStatistics(null, null, "version", null, null, null);
643 }).hasMessage("dao is marked @NonNull but is null");
645 assertThatThrownBy(() -> {
646 new PdpProvider().updatePdpStatistics(null, null, "version", null, null, new PdpStatistics());
647 }).hasMessage("dao is marked @NonNull but is null");
649 assertThatThrownBy(() -> {
650 new PdpProvider().updatePdpStatistics(null, null, "version", null, "inst", null);
651 }).hasMessage("dao is marked @NonNull but is null");
653 assertThatThrownBy(() -> {
654 new PdpProvider().updatePdpStatistics(null, null, "version", null, "inst", new PdpStatistics());
655 }).hasMessage("dao is marked @NonNull but is null");
657 assertThatThrownBy(() -> {
658 new PdpProvider().updatePdpStatistics(null, null, "version", "TYPE", null, null);
659 }).hasMessage("dao is marked @NonNull but is null");
661 assertThatThrownBy(() -> {
662 new PdpProvider().updatePdpStatistics(null, null, "version", "TYPE", null, new PdpStatistics());
663 }).hasMessage("dao is marked @NonNull but is null");
665 assertThatThrownBy(() -> {
666 new PdpProvider().updatePdpStatistics(null, null, "version", "TYPE", "inst", null);
667 }).hasMessage("dao is marked @NonNull but is null");
669 assertThatThrownBy(() -> {
670 new PdpProvider().updatePdpStatistics(null, null, "version", "TYPE", "inst", new PdpStatistics());
671 }).hasMessage("dao is marked @NonNull but is null");
673 assertThatThrownBy(() -> {
674 new PdpProvider().updatePdpStatistics(null, "name", null, null, null, null);
675 }).hasMessage("dao is marked @NonNull but is null");
677 assertThatThrownBy(() -> {
678 new PdpProvider().updatePdpStatistics(null, "name", null, null, null, new PdpStatistics());
679 }).hasMessage("dao is marked @NonNull but is null");
681 assertThatThrownBy(() -> {
682 new PdpProvider().updatePdpStatistics(null, "name", null, null, "inst", null);
683 }).hasMessage("dao is marked @NonNull but is null");
685 assertThatThrownBy(() -> {
686 new PdpProvider().updatePdpStatistics(null, "name", null, null, "inst", new PdpStatistics());
687 }).hasMessage("dao is marked @NonNull but is null");
689 assertThatThrownBy(() -> {
690 new PdpProvider().updatePdpStatistics(null, "name", null, "TYPE", null, null);
691 }).hasMessage("dao is marked @NonNull but is null");
693 assertThatThrownBy(() -> {
694 new PdpProvider().updatePdpStatistics(null, "name", null, "TYPE", null, new PdpStatistics());
695 }).hasMessage("dao is marked @NonNull but is null");
697 assertThatThrownBy(() -> {
698 new PdpProvider().updatePdpStatistics(null, "name", null, "TYPE", "inst", null);
699 }).hasMessage("dao is marked @NonNull but is null");
701 assertThatThrownBy(() -> {
702 new PdpProvider().updatePdpStatistics(null, "name", null, "TYPE", "inst", new PdpStatistics());
703 }).hasMessage("dao is marked @NonNull but is null");
705 assertThatThrownBy(() -> {
706 new PdpProvider().updatePdpStatistics(null, "name", "version", null, null, null);
707 }).hasMessage("dao is marked @NonNull but is null");
709 assertThatThrownBy(() -> {
710 new PdpProvider().updatePdpStatistics(null, "name", "version", null, null, new PdpStatistics());
711 }).hasMessage("dao is marked @NonNull but is null");
713 assertThatThrownBy(() -> {
714 new PdpProvider().updatePdpStatistics(null, "name", "version", null, "inst", null);
715 }).hasMessage("dao is marked @NonNull but is null");
717 assertThatThrownBy(() -> {
718 new PdpProvider().updatePdpStatistics(null, "name", "version", null, "inst", new PdpStatistics());
719 }).hasMessage("dao is marked @NonNull but is null");
721 assertThatThrownBy(() -> {
722 new PdpProvider().updatePdpStatistics(null, "name", "version", "TYPE", null, null);
723 }).hasMessage("dao is marked @NonNull but is null");
725 assertThatThrownBy(() -> {
726 new PdpProvider().updatePdpStatistics(null, "name", "version", "TYPE", null, new PdpStatistics());
727 }).hasMessage("dao is marked @NonNull but is null");
729 assertThatThrownBy(() -> {
730 new PdpProvider().updatePdpStatistics(null, "name", "version", "TYPE", "inst", null);
731 }).hasMessage("dao is marked @NonNull but is null");
733 assertThatThrownBy(() -> {
734 new PdpProvider().updatePdpStatistics(null, "name", "version", "TYPE", "inst", new PdpStatistics());
735 }).hasMessage("dao is marked @NonNull but is null");
737 assertThatThrownBy(() -> {
738 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, null, null);
739 }).hasMessage("pdpGroupName is marked @NonNull but is null");
741 assertThatThrownBy(() -> {
742 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, null, new PdpStatistics());
743 }).hasMessage("pdpGroupName is marked @NonNull but is null");
745 assertThatThrownBy(() -> {
746 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, "inst", null);
747 }).hasMessage("pdpGroupName is marked @NonNull but is null");
749 assertThatThrownBy(() -> {
750 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, "inst", new PdpStatistics());
751 }).hasMessage("pdpGroupName is marked @NonNull but is null");
753 assertThatThrownBy(() -> {
754 new PdpProvider().updatePdpStatistics(pfDao, null, null, "TYPE", null, null);
755 }).hasMessage("pdpGroupName is marked @NonNull but is null");
757 assertThatThrownBy(() -> {
758 new PdpProvider().updatePdpStatistics(pfDao, null, null, "TYPE", null, new PdpStatistics());
759 }).hasMessage("pdpGroupName is marked @NonNull but is null");
761 assertThatThrownBy(() -> {
762 new PdpProvider().updatePdpStatistics(pfDao, null, null, "TYPE", "inst", null);
763 }).hasMessage("pdpGroupName is marked @NonNull but is null");
765 assertThatThrownBy(() -> {
766 new PdpProvider().updatePdpStatistics(pfDao, null, null, "TYPE", "inst", new PdpStatistics());
767 }).hasMessage("pdpGroupName is marked @NonNull but is null");
769 assertThatThrownBy(() -> {
770 new PdpProvider().updatePdpStatistics(pfDao, null, "version", null, null, null);
771 }).hasMessage("pdpGroupName is marked @NonNull but is null");
773 assertThatThrownBy(() -> {
774 new PdpProvider().updatePdpStatistics(pfDao, null, "version", null, null, new PdpStatistics());
775 }).hasMessage("pdpGroupName is marked @NonNull but is null");
777 assertThatThrownBy(() -> {
778 new PdpProvider().updatePdpStatistics(pfDao, null, "version", null, "inst", null);
779 }).hasMessage("pdpGroupName is marked @NonNull but is null");
781 assertThatThrownBy(() -> {
782 new PdpProvider().updatePdpStatistics(pfDao, null, "version", null, "inst", new PdpStatistics());
783 }).hasMessage("pdpGroupName is marked @NonNull but is null");
785 assertThatThrownBy(() -> {
786 new PdpProvider().updatePdpStatistics(pfDao, null, "version", "TYPE", null, null);
787 }).hasMessage("pdpGroupName is marked @NonNull but is null");
789 assertThatThrownBy(() -> {
790 new PdpProvider().updatePdpStatistics(pfDao, null, "version", "TYPE", null, new PdpStatistics());
791 }).hasMessage("pdpGroupName is marked @NonNull but is null");
793 assertThatThrownBy(() -> {
794 new PdpProvider().updatePdpStatistics(pfDao, null, "version", "TYPE", "inst", null);
795 }).hasMessage("pdpGroupName is marked @NonNull but is null");
797 assertThatThrownBy(() -> {
798 new PdpProvider().updatePdpStatistics(pfDao, null, "version", "TYPE", "inst", new PdpStatistics());
799 }).hasMessage("pdpGroupName is marked @NonNull but is null");
801 assertThatThrownBy(() -> {
802 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, null, null);
803 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
805 assertThatThrownBy(() -> {
806 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, null, new PdpStatistics());
807 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
809 assertThatThrownBy(() -> {
810 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, "inst", null);
811 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
813 assertThatThrownBy(() -> {
814 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, "inst", new PdpStatistics());
815 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
817 assertThatThrownBy(() -> {
818 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "TYPE", null, null);
819 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
821 assertThatThrownBy(() -> {
822 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "TYPE", null, new PdpStatistics());
823 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
825 assertThatThrownBy(() -> {
826 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "TYPE", "inst", null);
827 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
829 assertThatThrownBy(() -> {
830 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "TYPE", "inst", new PdpStatistics());
831 }).hasMessage("pdpGroupVersion is marked @NonNull but is null");
833 assertThatThrownBy(() -> {
834 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", null, null, null);
835 }).hasMessage("pdpType is marked @NonNull but is null");
837 assertThatThrownBy(() -> {
838 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", null, null, new PdpStatistics());
839 }).hasMessage("pdpType is marked @NonNull but is null");
841 assertThatThrownBy(() -> {
842 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", null, "inst", null);
843 }).hasMessage("pdpType is marked @NonNull but is null");
845 assertThatThrownBy(() -> {
846 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", null, "inst", new PdpStatistics());
847 }).hasMessage("pdpType is marked @NonNull but is null");
849 assertThatThrownBy(() -> {
850 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", "TYPE", null, null);
851 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
853 assertThatThrownBy(() -> {
854 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", "TYPE", null, new PdpStatistics());
855 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
857 assertThatThrownBy(() -> {
858 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", "TYPE", "inst", null);
859 }).hasMessage("pdpStatistics is marked @NonNull but is null");
861 new PdpProvider().updatePdpStatistics(pfDao, "name", "version", "TYPE", "inst", new PdpStatistics());