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;
32 import org.eclipse.persistence.config.PersistenceUnitProperties;
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.tosca.authorative.concepts.ToscaPolicyIdentifier;
52 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
53 import org.onap.policy.models.tosca.simple.provider.SimpleToscaProvider;
56 * Test the {@link SimpleToscaProvider} class.
58 * @author Liam Fallon (liam.fallon@est.tech)
60 public class PdpProviderTest {
61 private static final String PDP_GROUPS0_JSON = "testdata/PdpGroups0.json";
62 private static final String PDP_TYPE_IS_NULL = "pdpType is marked @NonNull but is null";
63 private static final String SUBGROUP_IS_NULL = "pdpSubGroup is marked @NonNull but is null";
64 private static final String GROUP_IS_NULL = "pdpGroupName is marked @NonNull but is null";
65 private static final String DAO_IS_NULL = "dao is marked @NonNull but is null";
66 private static final String PDP_GROUP0 = "PdpGroup0";
68 private StandardCoder standardCoder;
72 * Set up the DAO towards the database.
74 * @throws Exception on database errors
77 public void setupDao() throws Exception {
78 final DaoParameters daoParameters = new DaoParameters();
79 daoParameters.setPluginClass(DefaultPfDao.class.getName());
81 daoParameters.setPersistenceUnit("ToscaConceptTest");
83 Properties jdbcProperties = new Properties();
84 jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
85 jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
87 // H2, use "org.mariadb.jdbc.Driver" and "jdbc:mariadb://localhost:3306/policy" for locally installed MariaDB
88 jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
89 jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:h2:mem:testdb");
91 daoParameters.setJdbcProperties(jdbcProperties );
93 pfDao = new PfDaoFactory().createPfDao(daoParameters);
94 pfDao.init(daoParameters);
101 public void setupGson() {
102 standardCoder = new StandardCoder();
106 public void teardown() {
111 public void testGroupsGet() throws Exception {
112 assertThatThrownBy(() -> {
113 new PdpProvider().getPdpGroups(null, null);
114 }).hasMessage(DAO_IS_NULL);
116 assertThatThrownBy(() -> {
117 new PdpProvider().getPdpGroups(null, "name");
118 }).hasMessage(DAO_IS_NULL);
120 String originalJson = ResourceUtils.getResourceAsString(PDP_GROUPS0_JSON);
121 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
123 PdpGroups createdPdpGroups0 = new PdpGroups();
124 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
125 String createdJson = standardCoder.encode(createdPdpGroups0);
126 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
128 PdpGroups gotPdpGroups0 = new PdpGroups();
129 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0));
131 String gotJson = standardCoder.encode(gotPdpGroups0);
133 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
137 public void testFilteredPdpGroupGet() throws Exception {
138 assertThatThrownBy(() -> {
139 new PdpProvider().getFilteredPdpGroups(null, null);
140 }).hasMessage(DAO_IS_NULL);
142 assertThatThrownBy(() -> {
143 new PdpProvider().getFilteredPdpGroups(null, PdpGroupFilter.builder().build());
144 }).hasMessage(DAO_IS_NULL);
146 assertThatThrownBy(() -> {
147 new PdpProvider().getFilteredPdpGroups(pfDao, null);
148 }).hasMessage("filter is marked @NonNull but is null");
150 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroupsForFiltering.json");
151 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
153 assertEquals(5, new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()).size());
155 List<ToscaPolicyTypeIdentifier> policyTypeList = new ArrayList<>();
156 policyTypeList.add(new ToscaPolicyTypeIdentifier("policy.type.0", "1.2.3"));
158 List<ToscaPolicyIdentifier> policyList = new ArrayList<>();
159 policyList.add(new ToscaPolicyIdentifier("Policy0", "4.5.6"));
162 final PdpGroupFilter filter = PdpGroupFilter.builder()
163 .groupState(PdpState.PASSIVE)
165 .matchPoliciesExactly(false)
166 .matchPolicyTypesExactly(false)
167 .pdpState(PdpState.PASSIVE)
169 .policyTypeList(policyTypeList)
170 .policyList(policyList)
173 assertEquals(1, new PdpProvider().getFilteredPdpGroups(pfDao, filter).size());
177 public void testGroupsCreate() throws Exception {
178 assertThatThrownBy(() -> {
179 new PdpProvider().createPdpGroups(null, null);
180 }).hasMessage(DAO_IS_NULL);
182 assertThatThrownBy(() -> {
183 new PdpProvider().createPdpGroups(null, new ArrayList<>());
184 }).hasMessage(DAO_IS_NULL);
186 assertThatThrownBy(() -> {
187 new PdpProvider().createPdpGroups(pfDao, null);
188 }).hasMessage("pdpGroups is marked @NonNull but is null");
190 String originalJson = ResourceUtils.getResourceAsString(PDP_GROUPS0_JSON);
191 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
193 PdpGroups createdPdpGroups0 = new PdpGroups();
194 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
195 String createdJson = standardCoder.encode(createdPdpGroups0);
196 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
198 PdpGroups gotPdpGroups0 = new PdpGroups();
199 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0));
201 String gotJson = standardCoder.encode(gotPdpGroups0);
202 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
204 pdpGroups0.getGroups().get(0).setPdpGroupState(null);
205 assertThatThrownBy(() -> {
206 new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups());
207 }).hasMessageContaining("INVALID:pdpGroupState may not be null");
211 public void testGroupsCreateNoPdp() throws Exception {
212 String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroupsNoPDPs.json");
214 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
216 PdpGroups createdPdpGroups0 = new PdpGroups();
217 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
218 assertNotEquals(pdpGroups0, createdPdpGroups0);
219 pdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).setPdpInstances(new ArrayList<>());
220 String originalTweakedJson = standardCoder.encode(pdpGroups0);
221 String createdJson = standardCoder.encode(createdPdpGroups0);
222 assertEquals(originalTweakedJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
224 PdpGroups gotPdpGroups0 = new PdpGroups();
225 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, "TestPdpGroup"));
227 String gotJson = standardCoder.encode(gotPdpGroups0);
228 assertEquals(originalTweakedJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
232 public void testGroupsUpdate() throws Exception {
233 assertThatThrownBy(() -> {
234 new PdpProvider().updatePdpGroups(null, null);
235 }).hasMessage(DAO_IS_NULL);
237 assertThatThrownBy(() -> {
238 new PdpProvider().updatePdpGroups(null, new ArrayList<>());
239 }).hasMessage(DAO_IS_NULL);
241 assertThatThrownBy(() -> {
242 new PdpProvider().updatePdpGroups(pfDao, null);
243 }).hasMessage("pdpGroups is marked @NonNull but is null");
245 String originalJson = ResourceUtils.getResourceAsString(PDP_GROUPS0_JSON);
246 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
248 PdpGroups createdPdpGroups0 = new PdpGroups();
249 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
250 String createdJson = standardCoder.encode(createdPdpGroups0);
251 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
253 PdpGroups gotPdpGroups0 = new PdpGroups();
254 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0));
256 String gotJson = standardCoder.encode(gotPdpGroups0);
257 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
259 String updateJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0Update.json");
260 PdpGroups updatePdpGroups0 = standardCoder.decode(updateJson, PdpGroups.class);
262 PdpGroups updatedPdpGroups0 = new PdpGroups();
263 updatedPdpGroups0.setGroups(new PdpProvider().updatePdpGroups(pfDao, updatePdpGroups0.getGroups()));
265 List<Pdp> beforePdpInstances = updatePdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances();
266 List<Pdp> afterPdpInstances = updatedPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances();
267 assertTrue(beforePdpInstances.containsAll(afterPdpInstances));
269 pdpGroups0.getGroups().get(0).setPdpGroupState(null);
270 assertThatThrownBy(() -> {
271 new PdpProvider().updatePdpGroups(pfDao, pdpGroups0.getGroups());
272 }).hasMessageContaining("INVALID:pdpGroupState may not be null");
276 public void testPoliciesDelete() throws Exception {
277 assertThatThrownBy(() -> {
278 new PdpProvider().deletePdpGroup(null, null);
279 }).hasMessage(DAO_IS_NULL);
281 assertThatThrownBy(() -> {
282 new PdpProvider().deletePdpGroup(null, "name");
283 }).hasMessage(DAO_IS_NULL);
285 assertThatThrownBy(() -> {
286 new PdpProvider().deletePdpGroup(pfDao, null);
287 }).hasMessage("name is marked @NonNull but is null");
289 assertThatThrownBy(() -> {
290 new PdpProvider().deletePdpGroup(pfDao, "name");
291 }).hasMessage("delete of PDP group \"name:0.0.0\" failed, PDP group does not exist");
293 String originalJson = ResourceUtils.getResourceAsString(PDP_GROUPS0_JSON);
294 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
296 PdpGroups createdPdpGroups0 = new PdpGroups();
297 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
298 String createdJson = standardCoder.encode(createdPdpGroups0);
299 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
301 PdpGroups gotPdpGroups0 = new PdpGroups();
302 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0));
304 String gotJson = standardCoder.encode(gotPdpGroups0);
305 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
307 PdpGroup deletedPdpGroup = new PdpProvider().deletePdpGroup(pfDao, PDP_GROUP0);
309 assertEquals(createdPdpGroups0.getGroups().get(0), deletedPdpGroup);
311 assertEquals(0, new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0).size());
313 assertThatThrownBy(() -> {
314 new PdpProvider().deletePdpGroup(pfDao, PDP_GROUP0);
315 }).hasMessage("delete of PDP group \"PdpGroup0:0.0.0\" failed, PDP group does not exist");
319 public void testPdpSubgroupUpdate() throws Exception {
320 assertThatThrownBy(() -> {
321 new PdpProvider().updatePdpSubGroup(null, null, null);
322 }).hasMessage(DAO_IS_NULL);
324 assertThatThrownBy(() -> {
325 new PdpProvider().updatePdpSubGroup(null, null, new PdpSubGroup());
326 }).hasMessage(DAO_IS_NULL);
328 assertThatThrownBy(() -> {
329 new PdpProvider().updatePdpSubGroup(null, "name", null);
330 }).hasMessage(DAO_IS_NULL);
332 assertThatThrownBy(() -> {
333 new PdpProvider().updatePdpSubGroup(null, "name", new PdpSubGroup());
334 }).hasMessage(DAO_IS_NULL);
336 assertThatThrownBy(() -> {
337 new PdpProvider().updatePdpSubGroup(pfDao, null, null);
338 }).hasMessage(GROUP_IS_NULL);
340 assertThatThrownBy(() -> {
341 new PdpProvider().updatePdpSubGroup(pfDao, null, new PdpSubGroup());
342 }).hasMessage(GROUP_IS_NULL);
344 assertThatThrownBy(() -> {
345 new PdpProvider().updatePdpSubGroup(pfDao, "name", null);
346 }).hasMessage(SUBGROUP_IS_NULL);
348 assertThatThrownBy(() -> {
349 new PdpProvider().updatePdpSubGroup(pfDao, "name", new PdpSubGroup());
350 }).hasMessage("parameter \"localName\" is null");
352 String originalJson = ResourceUtils.getResourceAsString(PDP_GROUPS0_JSON);
353 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
355 PdpGroups createdPdpGroups0 = new PdpGroups();
356 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
357 String createdJson = standardCoder.encode(createdPdpGroups0);
358 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
360 PdpGroups gotPdpGroups0 = new PdpGroups();
361 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0));
363 String gotJson = standardCoder.encode(gotPdpGroups0);
364 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
366 PdpSubGroup existingSubGroup = gotPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0);
367 existingSubGroup.setCurrentInstanceCount(10);
368 existingSubGroup.setDesiredInstanceCount(10);
369 new PdpProvider().updatePdpSubGroup(pfDao, PDP_GROUP0, existingSubGroup);
371 List<PdpGroup> afterUpdatePdpGroups = new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0);
372 assertEquals(10, afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getCurrentInstanceCount());
373 assertEquals(10, afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getDesiredInstanceCount());
375 existingSubGroup.setDesiredInstanceCount(-1);
376 assertThatThrownBy(() -> {
377 new PdpProvider().updatePdpSubGroup(pfDao, PDP_GROUP0, existingSubGroup);
378 }).hasMessageContaining("INVALID:the desired instance count of a PDP sub group may not be negative");
379 existingSubGroup.setDesiredInstanceCount(10);
383 public void testPdpUpdate() throws Exception {
384 assertThatThrownBy(() -> {
385 new PdpProvider().updatePdp(null, null, null, null);
386 }).hasMessage(DAO_IS_NULL);
388 assertThatThrownBy(() -> {
389 new PdpProvider().updatePdp(null, null, null, new Pdp());
390 }).hasMessage(DAO_IS_NULL);
392 assertThatThrownBy(() -> {
393 new PdpProvider().updatePdp(null, null, "TYPE", null);
394 }).hasMessage(DAO_IS_NULL);
396 assertThatThrownBy(() -> {
397 new PdpProvider().updatePdp(null, null, "TYPE", new Pdp());
398 }).hasMessage(DAO_IS_NULL);
400 assertThatThrownBy(() -> {
401 new PdpProvider().updatePdp(null, "name", null, null);
402 }).hasMessage(DAO_IS_NULL);
404 assertThatThrownBy(() -> {
405 new PdpProvider().updatePdp(null, "name", null, new Pdp());
406 }).hasMessage(DAO_IS_NULL);
408 assertThatThrownBy(() -> {
409 new PdpProvider().updatePdp(null, "name", "TYPE", null);
410 }).hasMessage(DAO_IS_NULL);
412 assertThatThrownBy(() -> {
413 new PdpProvider().updatePdp(null, "name", "TYPE", new Pdp());
414 }).hasMessage(DAO_IS_NULL);
416 assertThatThrownBy(() -> {
417 new PdpProvider().updatePdp(pfDao, null, null, null);
418 }).hasMessage(GROUP_IS_NULL);
420 assertThatThrownBy(() -> {
421 new PdpProvider().updatePdp(pfDao, null, null, new Pdp());
422 }).hasMessage(GROUP_IS_NULL);
424 assertThatThrownBy(() -> {
425 new PdpProvider().updatePdp(pfDao, null, "TYPE", null);
426 }).hasMessage(GROUP_IS_NULL);
428 assertThatThrownBy(() -> {
429 new PdpProvider().updatePdp(pfDao, null, "TYPE", new Pdp());
430 }).hasMessage(GROUP_IS_NULL);
432 assertThatThrownBy(() -> {
433 new PdpProvider().updatePdp(pfDao, "name", null, null);
434 }).hasMessage(SUBGROUP_IS_NULL);
436 assertThatThrownBy(() -> {
437 new PdpProvider().updatePdp(pfDao, "name", null, new Pdp());
438 }).hasMessage(SUBGROUP_IS_NULL);
440 assertThatThrownBy(() -> {
441 new PdpProvider().updatePdp(pfDao, "name", "TYPE", null);
442 }).hasMessage("pdp is marked @NonNull but is null");
444 assertThatThrownBy(() -> {
445 new PdpProvider().updatePdp(pfDao, "name", "TYPE", new Pdp());
446 }).hasMessage("parameter \"localName\" is null");
448 String originalJson = ResourceUtils.getResourceAsString(PDP_GROUPS0_JSON);
449 PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class);
451 PdpGroups createdPdpGroups0 = new PdpGroups();
452 createdPdpGroups0.setGroups(new PdpProvider().createPdpGroups(pfDao, pdpGroups0.getGroups()));
453 String createdJson = standardCoder.encode(createdPdpGroups0);
454 assertEquals(originalJson.replaceAll("\\s+", ""), createdJson.replaceAll("\\s+", ""));
456 PdpGroups gotPdpGroups0 = new PdpGroups();
457 gotPdpGroups0.setGroups(new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0));
459 String gotJson = standardCoder.encode(gotPdpGroups0);
460 assertEquals(originalJson.replaceAll("\\s+", ""), gotJson.replaceAll("\\s+", ""));
462 Pdp existingPdp = gotPdpGroups0.getGroups().get(0).getPdpSubgroups().get(0).getPdpInstances().get(0);
463 existingPdp.setPdpState(PdpState.TEST);
464 existingPdp.setHealthy(PdpHealthStatus.TEST_IN_PROGRESS);
465 new PdpProvider().updatePdp(pfDao, PDP_GROUP0, "APEX", existingPdp);
467 List<PdpGroup> afterUpdatePdpGroups = new PdpProvider().getPdpGroups(pfDao, PDP_GROUP0);
468 assertEquals(PdpState.TEST,
469 afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getPdpState());
470 assertEquals(PdpHealthStatus.TEST_IN_PROGRESS,
471 afterUpdatePdpGroups.get(0).getPdpSubgroups().get(0).getPdpInstances().get(0).getHealthy());
473 existingPdp.setMessage("");
474 assertThatThrownBy(() -> {
475 new PdpProvider().updatePdp(pfDao, PDP_GROUP0, "APEX", existingPdp);
476 }).hasMessageContaining("INVALID:message may not be blank");
477 existingPdp.setMessage("A Message");
481 public void testGetPdpStatistics() throws PfModelException {
482 assertThatThrownBy(() -> {
483 new PdpProvider().getPdpStatistics(null, null);
484 }).hasMessage(DAO_IS_NULL);
486 assertThatThrownBy(() -> {
487 new PdpProvider().getPdpStatistics(null, "name");
488 }).hasMessage(DAO_IS_NULL);
490 assertEquals(0, new PdpProvider().getPdpStatistics(pfDao, "name").size());
494 public void testUpdatePdpStatistics() throws PfModelException {
495 assertThatThrownBy(() -> {
496 new PdpProvider().updatePdpStatistics(null, null, null, null, null);
497 }).hasMessage(DAO_IS_NULL);
499 assertThatThrownBy(() -> {
500 new PdpProvider().updatePdpStatistics(null, null, null, null, new PdpStatistics());
501 }).hasMessage(DAO_IS_NULL);
503 assertThatThrownBy(() -> {
504 new PdpProvider().updatePdpStatistics(null, null, null, "inst", null);
505 }).hasMessage(DAO_IS_NULL);
507 assertThatThrownBy(() -> {
508 new PdpProvider().updatePdpStatistics(null, null, null, "inst", new PdpStatistics());
509 }).hasMessage(DAO_IS_NULL);
511 assertThatThrownBy(() -> {
512 new PdpProvider().updatePdpStatistics(null, null, "TYPE", null, null);
513 }).hasMessage(DAO_IS_NULL);
515 assertThatThrownBy(() -> {
516 new PdpProvider().updatePdpStatistics(null, null, "TYPE", null, new PdpStatistics());
517 }).hasMessage(DAO_IS_NULL);
519 assertThatThrownBy(() -> {
520 new PdpProvider().updatePdpStatistics(null, null, "TYPE", "inst", null);
521 }).hasMessage(DAO_IS_NULL);
523 assertThatThrownBy(() -> {
524 new PdpProvider().updatePdpStatistics(null, null, "TYPE", "inst", new PdpStatistics());
525 }).hasMessage(DAO_IS_NULL);
527 assertThatThrownBy(() -> {
528 new PdpProvider().updatePdpStatistics(null, "name", null, null, null);
529 }).hasMessage(DAO_IS_NULL);
531 assertThatThrownBy(() -> {
532 new PdpProvider().updatePdpStatistics(null, "name", null, null, new PdpStatistics());
533 }).hasMessage(DAO_IS_NULL);
535 assertThatThrownBy(() -> {
536 new PdpProvider().updatePdpStatistics(null, "name", null, "inst", null);
537 }).hasMessage(DAO_IS_NULL);
539 assertThatThrownBy(() -> {
540 new PdpProvider().updatePdpStatistics(null, "name", null, "inst", new PdpStatistics());
541 }).hasMessage(DAO_IS_NULL);
543 assertThatThrownBy(() -> {
544 new PdpProvider().updatePdpStatistics(null, "name", "TYPE", null, null);
545 }).hasMessage(DAO_IS_NULL);
547 assertThatThrownBy(() -> {
548 new PdpProvider().updatePdpStatistics(null, "name", "TYPE", null, new PdpStatistics());
549 }).hasMessage(DAO_IS_NULL);
551 assertThatThrownBy(() -> {
552 new PdpProvider().updatePdpStatistics(null, "name", "TYPE", "inst", null);
553 }).hasMessage(DAO_IS_NULL);
555 assertThatThrownBy(() -> {
556 new PdpProvider().updatePdpStatistics(null, "name", "TYPE", "inst", new PdpStatistics());
557 }).hasMessage(DAO_IS_NULL);
559 assertThatThrownBy(() -> {
560 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, null);
561 }).hasMessage(GROUP_IS_NULL);
563 assertThatThrownBy(() -> {
564 new PdpProvider().updatePdpStatistics(pfDao, null, null, null, new PdpStatistics());
565 }).hasMessage(GROUP_IS_NULL);
567 assertThatThrownBy(() -> {
568 new PdpProvider().updatePdpStatistics(pfDao, null, null, "inst", null);
569 }).hasMessage(GROUP_IS_NULL);
571 assertThatThrownBy(() -> {
572 new PdpProvider().updatePdpStatistics(pfDao, null, null, "inst", new PdpStatistics());
573 }).hasMessage(GROUP_IS_NULL);
575 assertThatThrownBy(() -> {
576 new PdpProvider().updatePdpStatistics(pfDao, null, "TYPE", null, null);
577 }).hasMessage(GROUP_IS_NULL);
579 assertThatThrownBy(() -> {
580 new PdpProvider().updatePdpStatistics(pfDao, null, "TYPE", null, new PdpStatistics());
581 }).hasMessage(GROUP_IS_NULL);
583 assertThatThrownBy(() -> {
584 new PdpProvider().updatePdpStatistics(pfDao, null, "TYPE", "inst", null);
585 }).hasMessage(GROUP_IS_NULL);
587 assertThatThrownBy(() -> {
588 new PdpProvider().updatePdpStatistics(pfDao, null, "TYPE", "inst", new PdpStatistics());
589 }).hasMessage(GROUP_IS_NULL);
591 assertThatThrownBy(() -> {
592 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, null);
593 }).hasMessage(PDP_TYPE_IS_NULL);
595 assertThatThrownBy(() -> {
596 new PdpProvider().updatePdpStatistics(pfDao, "name", null, null, new PdpStatistics());
597 }).hasMessage(PDP_TYPE_IS_NULL);
599 assertThatThrownBy(() -> {
600 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "inst", null);
601 }).hasMessage(PDP_TYPE_IS_NULL);
603 assertThatThrownBy(() -> {
604 new PdpProvider().updatePdpStatistics(pfDao, "name", null, "inst", new PdpStatistics());
605 }).hasMessage(PDP_TYPE_IS_NULL);
607 assertThatThrownBy(() -> {
608 new PdpProvider().updatePdpStatistics(pfDao, "name", "TYPE", null, null);
609 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
611 assertThatThrownBy(() -> {
612 new PdpProvider().updatePdpStatistics(pfDao, "name", "TYPE", null, new PdpStatistics());
613 }).hasMessage("pdpInstanceId is marked @NonNull but is null");
615 assertThatThrownBy(() -> {
616 new PdpProvider().updatePdpStatistics(pfDao, "name", "TYPE", "inst", null);
617 }).hasMessage("pdpStatistics is marked @NonNull but is null");
619 new PdpProvider().updatePdpStatistics(pfDao, "name", "TYPE", "inst", new PdpStatistics());