Fix Sonar Issues in models-pdp
[policy/models.git] / models-pdp / src / test / java / org / onap / policy / models / pdp / persistence / concepts / JpaPdpSubGroupTest.java
index 981f40f..566de0d 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ *  Copyright (C) 2019-2021 Nordix Foundation.
+ *  Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
 
 package org.onap.policy.models.pdp.persistence.concepts;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -32,11 +33,11 @@ import static org.junit.Assert.assertTrue;
 import java.util.ArrayList;
 import java.util.LinkedHashMap;
 import java.util.List;
-
 import org.junit.Test;
 import org.onap.policy.models.base.PfConceptKey;
 import org.onap.policy.models.base.PfReferenceKey;
-import org.onap.policy.models.base.PfValidationResult;
+import org.onap.policy.models.base.PfSearchableKey;
+import org.onap.policy.models.base.Validated;
 import org.onap.policy.models.pdp.concepts.PdpSubGroup;
 import org.onap.policy.models.pdp.testconcepts.DummyJpaPdpSubgroupChild;
 
@@ -47,73 +48,76 @@ import org.onap.policy.models.pdp.testconcepts.DummyJpaPdpSubgroupChild;
  */
 public class JpaPdpSubGroupTest {
 
-    private static final String NULL_KEY_ERROR = "key is marked @NonNull but is null";
+    private static final String NULL_KEY_ERROR = "key is marked .*ull but is null";
     private static final String PDP_A = "PDP-A";
 
     @Test
-    public void testJpaPdpSubGroup() {
+    public void testJpaPdpSubGroupErrors() {
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup((JpaPdpSubGroup) null);
-        }).hasMessage("copyConcept is marked @NonNull but is null");
+        }).hasMessageMatching("copyConcept is marked .*ull but is null");
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup((PfReferenceKey) null);
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup((PdpSubGroup) null);
-        }).hasMessage("authorativeConcept is marked @NonNull but is null");
+        }).hasMessageMatching("authorativeConcept is marked .*ull but is null");
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(null, null, null, null);
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(new PfReferenceKey(), null, null, null);
-        }).hasMessage("supportedPolicyTypes is marked @NonNull but is null");
+        }).hasMessageMatching("supportedPolicyTypes is marked .*ull but is null");
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(new PfReferenceKey(), new ArrayList<>(), null, null);
-        }).hasMessage("policies is marked @NonNull but is null");
+        }).hasMessageMatching("policies is marked .*ull but is null");
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(null, new ArrayList<>(), null, null);
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(null, new ArrayList<>(), new ArrayList<>(), null);
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(null, null, new ArrayList<>(), null);
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(null, null, null, new ArrayList<>());
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(new PfReferenceKey(), null, null, new ArrayList<>());
-        }).hasMessage("supportedPolicyTypes is marked @NonNull but is null");
+        }).hasMessageMatching("supportedPolicyTypes is marked .*ull but is null");
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(new PfReferenceKey(), new ArrayList<>(), null, new ArrayList<>());
-        }).hasMessage("policies is marked @NonNull but is null");
+        }).hasMessageMatching("policies is marked .*ull but is null");
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(null, new ArrayList<>(), null, new ArrayList<>());
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(null, new ArrayList<>(), new ArrayList<>(), new ArrayList<>());
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpSubGroup(null, null, new ArrayList<>(), null);
-        }).hasMessage(NULL_KEY_ERROR);
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertNotNull(new JpaPdpSubGroup((new PfReferenceKey())));
+    }
 
+    @Test
+    public void testJpaPdpSubGroup() {
         PdpSubGroup testPdpSubgroup = new PdpSubGroup();
         testPdpSubgroup.setPdpType(PDP_A);
         JpaPdpSubGroup testJpaPdpSubGroup = new JpaPdpSubGroup();
@@ -125,11 +129,9 @@ public class JpaPdpSubGroupTest {
 
         assertThatThrownBy(() -> {
             testJpaPdpSubGroup.fromAuthorative(null);
-        }).hasMessage("pdpSubgroup is marked @NonNull but is null");
+        }).hasMessageMatching("pdpSubgroup is marked .*ull but is null");
 
-        assertThatThrownBy(() -> {
-            testJpaPdpSubGroup.copyTo(null);
-        }).hasMessage("target is marked @NonNull but is null");
+        assertThatThrownBy(() -> new JpaPdpSubGroup((JpaPdpSubGroup) null)).isInstanceOf(NullPointerException.class);
 
         assertEquals(PDP_A, testJpaPdpSubGroup.getKey().getLocalName());
         assertEquals(PDP_A, new JpaPdpSubGroup(testPdpSubgroup).getKey().getLocalName());
@@ -140,88 +142,100 @@ public class JpaPdpSubGroupTest {
 
         assertThatThrownBy(() -> {
             testJpaPdpSubGroup.validate(null);
-        }).hasMessage("resultIn is marked @NonNull but is null");
+        }).hasMessageMatching("fieldName is marked .*ull but is null");
 
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).toString()
-                .contains("INVALID:parent of key is a null key"));
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
+        assertThat(testJpaPdpSubGroup.validate("").getResult())
+                .contains("parent of key").contains(Validated.IS_A_NULL_KEY);
 
         testJpaPdpSubGroup.getKey().setParentConceptKey(new PfConceptKey("Parent:1.0.0"));
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).toString()
-                .contains("INVALID:parent of key is a null key"));
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).toString()
-                .contains("INVALID:a PDP subgroup must support at least one policy type"));
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
+        assertThat(testJpaPdpSubGroup.validate("").getResult())
+                .doesNotContain("parent of key")
+                .contains("supportedPolicyTypes").contains("is empty");
 
         testJpaPdpSubGroup.setSupportedPolicyTypes(new ArrayList<>());
-        testJpaPdpSubGroup.getSupportedPolicyTypes().add(new PfConceptKey("APolicyType:1.0.0"));
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).toString()
-                .contains("INVALID:a PDP subgroup must support at least one policy type"));
+        testJpaPdpSubGroup.getSupportedPolicyTypes().add(new PfSearchableKey("APolicyType:1.0.0"));
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
+    }
+
+    @Test
+    public void testJpaPdpSubGroupSavedKey() {
+        JpaPdpSubGroup testJpaPdpSubGroup = setUpJpaPdpSubGroup();
 
         PfReferenceKey savedKey = testJpaPdpSubGroup.getKey();
         testJpaPdpSubGroup.setKey(PfReferenceKey.getNullKey());
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setKey(savedKey);
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
 
         testJpaPdpSubGroup.setProperties(new LinkedHashMap<>());
         testJpaPdpSubGroup.getProperties().put(null, null);
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.getProperties().remove(null);
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
 
         testJpaPdpSubGroup.setProperties(new LinkedHashMap<>());
         testJpaPdpSubGroup.getProperties().put("NullKey", null);
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.getProperties().remove("NullKey");
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
 
         testJpaPdpSubGroup.setDesiredInstanceCount(-1);
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setDesiredInstanceCount(0);
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setProperties(null);
 
         testJpaPdpSubGroup.setCurrentInstanceCount(-1);
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setCurrentInstanceCount(0);
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setProperties(null);
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
+    }
+
+    @Test
+    public void testJpaPdpSubGroupPolicyTypes() {
+        JpaPdpSubGroup testJpaPdpSubGroup = setUpJpaPdpSubGroup();
 
-        List<PfConceptKey> supportedPolicyTypes = testJpaPdpSubGroup.getSupportedPolicyTypes();
+        List<PfSearchableKey> supportedPolicyTypes = testJpaPdpSubGroup.getSupportedPolicyTypes();
         assertNotNull(supportedPolicyTypes);
         testJpaPdpSubGroup.setSupportedPolicyTypes(null);
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setSupportedPolicyTypes(new ArrayList<>());
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setSupportedPolicyTypes(supportedPolicyTypes);
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
 
         List<PfConceptKey> supportedPolicies = testJpaPdpSubGroup.getPolicies();
         assertNotNull(supportedPolicies);
         testJpaPdpSubGroup.setPolicies(null);
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setPolicies(new ArrayList<>());
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setPolicies(supportedPolicies);
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
 
         List<JpaPdp> pdpInstances = testJpaPdpSubGroup.getPdpInstances();
         assertNotNull(pdpInstances);
         testJpaPdpSubGroup.setPdpInstances(null);
-        assertFalse(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setPdpInstances(new ArrayList<>());
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
         testJpaPdpSubGroup.setPdpInstances(pdpInstances);
-        assertTrue(testJpaPdpSubGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpSubGroup.validate("").isValid());
+    }
+
+    @Test
+    public void testJpaPdpSubGroupKeys() {
+        JpaPdpSubGroup testJpaPdpSubGroup = setUpJpaPdpSubGroup();
 
         JpaPdpSubGroup otherJpaPdpSubGroup = new JpaPdpSubGroup(testJpaPdpSubGroup);
         assertEquals(0, testJpaPdpSubGroup.compareTo(otherJpaPdpSubGroup));
         assertEquals(-1, testJpaPdpSubGroup.compareTo(null));
         assertEquals(0, testJpaPdpSubGroup.compareTo(testJpaPdpSubGroup));
-        assertFalse(testJpaPdpSubGroup.compareTo(new DummyJpaPdpSubgroupChild()) == 0);
+        assertNotEquals(0, testJpaPdpSubGroup.compareTo(new DummyJpaPdpSubgroupChild()));
 
         testJpaPdpSubGroup.getKey().setParentKeyName("Parent1");
         assertEquals(1, testJpaPdpSubGroup.compareTo(otherJpaPdpSubGroup));
@@ -238,7 +252,7 @@ public class JpaPdpSubGroupTest {
         testJpaPdpSubGroup.setDesiredInstanceCount(0);
         assertEquals(0, testJpaPdpSubGroup.compareTo(otherJpaPdpSubGroup));
 
-        PfConceptKey anotherPolicyType = new PfConceptKey("AnotherPolicyType", "1.0.0");
+        PfSearchableKey anotherPolicyType = new PfSearchableKey("AnotherPolicyType.*", "1.0.0");
         testJpaPdpSubGroup.getSupportedPolicyTypes().add(anotherPolicyType);
         assertNotEquals(0, testJpaPdpSubGroup.compareTo(otherJpaPdpSubGroup));
         testJpaPdpSubGroup.getSupportedPolicyTypes().remove(anotherPolicyType);
@@ -279,5 +293,24 @@ public class JpaPdpSubGroupTest {
         assertEquals("Prop Value", testJpaPdpSubGroup.getProperties().get("PropKey"));
 
         assertEquals(4, testJpaPdpSubGroup.getKeys().size());
+
+        assertEquals(testJpaPdpSubGroup, new JpaPdpSubGroup(testJpaPdpSubGroup));
+    }
+
+    private JpaPdpSubGroup setUpJpaPdpSubGroup() {
+        PdpSubGroup testPdpSubgroup = new PdpSubGroup();
+        testPdpSubgroup.setPdpType(PDP_A);
+        JpaPdpSubGroup testJpaPdpSubGroup = new JpaPdpSubGroup();
+        testJpaPdpSubGroup.setKey(PfReferenceKey.getNullKey());
+        testJpaPdpSubGroup.fromAuthorative(testPdpSubgroup);
+        testJpaPdpSubGroup.getKey().setParentConceptKey(new PfConceptKey("Parent:1.0.0"));
+        testJpaPdpSubGroup.setProperties(new LinkedHashMap<>());
+        testJpaPdpSubGroup.setDesiredInstanceCount(0);
+        testJpaPdpSubGroup.setCurrentInstanceCount(0);
+        testJpaPdpSubGroup.setProperties(null);
+        testJpaPdpSubGroup.setSupportedPolicyTypes(new ArrayList<>());
+        testJpaPdpSubGroup.getSupportedPolicyTypes().add(new PfSearchableKey("APolicyType:1.0.0"));
+        testJpaPdpSubGroup.clean();
+        return testJpaPdpSubGroup;
     }
 }