Fix Sonar Issues in models-pdp
[policy/models.git] / models-pdp / src / test / java / org / onap / policy / models / pdp / persistence / concepts / JpaPdpGroupTest.java
index e75743e..060f650 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
+ *  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.
@@ -31,11 +32,9 @@ 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.pdp.concepts.PdpGroup;
 import org.onap.policy.models.pdp.enums.PdpState;
 import org.onap.policy.models.pdp.testconcepts.DummyJpaPdpSubgroupChild;
@@ -47,138 +46,139 @@ import org.onap.policy.models.pdp.testconcepts.DummyJpaPdpSubgroupChild;
  */
 public class JpaPdpGroupTest {
 
+    private static final String NULL_ERROR = " is marked .*ull but is null";
+    private static final String NULL_KEY_ERROR = "key" + NULL_ERROR;
+    private static final String PDP_GROUP0 = "PDPGroup0";
+    private static final String VERSION = "1.0.0";
+
     @Test
     public void testJpaPdpGroup() {
         assertThatThrownBy(() -> {
             new JpaPdpGroup((JpaPdpGroup) null);
-        }).hasMessage("copyConcept is marked @NonNull but is null");
+        }).hasMessageMatching("copyConcept" + NULL_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup((PfConceptKey) null);
-        }).hasMessage("key is marked @NonNull but is null");
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup((PdpGroup) null);
-        }).hasMessage("authorativeConcept is marked @NonNull but is null");
+        }).hasMessageMatching("authorativeConcept" + NULL_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup((JpaPdpGroup) null);
-        }).hasMessage("copyConcept is marked @NonNull but is null");
+        }).hasMessageMatching("copyConcept" + NULL_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup(null, null, null);
-        }).hasMessage("key is marked @NonNull but is null");
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup(new PfConceptKey(), null, null);
-        }).hasMessage("pdpGroupState is marked @NonNull but is null");
+        }).hasMessageMatching("pdpGroupState" + NULL_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup(new PfConceptKey(), PdpState.PASSIVE, null);
-        }).hasMessage("pdpSubGroups is marked @NonNull but is null");
+        }).hasMessageMatching("pdpSubGroups" + NULL_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup(null, PdpState.PASSIVE, null);
-        }).hasMessage("key is marked @NonNull but is null");
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup(null, PdpState.PASSIVE, new ArrayList<>());
-        }).hasMessage("key is marked @NonNull but is null");
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertThatThrownBy(() -> {
             new JpaPdpGroup(null, null, new ArrayList<>());
-        }).hasMessage("key is marked @NonNull but is null");
+        }).hasMessageMatching(NULL_KEY_ERROR);
 
         assertNotNull(new JpaPdpGroup((new PfConceptKey())));
         assertNotNull(new JpaPdpGroup((new JpaPdpGroup())));
+    }
 
+    @Test
+    public void testPdpGroupSet() {
         PdpGroup testPdpGroup = new PdpGroup();
-        testPdpGroup.setName("PDPGroup0");
+        testPdpGroup.setName(PDP_GROUP0);
         testPdpGroup.setPdpSubgroups(new ArrayList<>());
-        JpaPdpGroup testJpaPdpGroup = new JpaPdpGroup();
-        testJpaPdpGroup.setKey(null);
 
-        assertThatThrownBy(() -> {
-            testJpaPdpGroup.fromAuthorative(testPdpGroup);
-        }).hasMessage("version is marked @NonNull but is null");
+        JpaPdpGroup testJpaPdpGroup = setUpSmallJpaPdpGroup();
 
-        testJpaPdpGroup.setKey(new PfConceptKey());
-
-        assertThatThrownBy(() -> {
-            testJpaPdpGroup.fromAuthorative(testPdpGroup);
-        }).hasMessage("version is marked @NonNull but is null");
-
-        testPdpGroup.setVersion("1.0.0");
-        testJpaPdpGroup.fromAuthorative(testPdpGroup);
-
-        assertEquals("PDPGroup0", testJpaPdpGroup.getKey().getName());
-        testJpaPdpGroup.setKey(PfConceptKey.getNullKey());
-        testJpaPdpGroup.fromAuthorative(testPdpGroup);
+        assertEquals(PDP_GROUP0, testJpaPdpGroup.getKey().getName());
 
         assertThatThrownBy(() -> {
             testJpaPdpGroup.fromAuthorative(null);
-        }).hasMessage("pdpGroup is marked @NonNull but is null");
+        }).hasMessageMatching("pdpGroup" + NULL_ERROR);
 
-        testJpaPdpGroup.setKey(new PfConceptKey("PDPGroup0", "1.0.0"));
+        testJpaPdpGroup.setKey(new PfConceptKey(PDP_GROUP0, VERSION));
         testJpaPdpGroup.fromAuthorative(testPdpGroup);
 
-        assertThatThrownBy(() -> {
-            testJpaPdpGroup.copyTo(null);
-        }).hasMessage("target is marked @NonNull but is null");
+        assertThatThrownBy(() -> new JpaPdpGroup((JpaPdpGroup) null)).isInstanceOf(NullPointerException.class);
 
-        assertEquals("PDPGroup0", testJpaPdpGroup.getKey().getName());
-        assertEquals("PDPGroup0", new JpaPdpGroup(testPdpGroup).getKey().getName());
-        assertEquals("PDPGroup0", ((PfConceptKey) new JpaPdpGroup(testPdpGroup).getKeys().get(0)).getName());
+        assertEquals(PDP_GROUP0, testJpaPdpGroup.getKey().getName());
+        assertEquals(PDP_GROUP0, new JpaPdpGroup(testPdpGroup).getKey().getName());
+        assertEquals(PDP_GROUP0, ((PfConceptKey) new JpaPdpGroup(testPdpGroup).getKeys().get(0)).getName());
 
         testJpaPdpGroup.clean();
-        assertEquals("PDPGroup0", testJpaPdpGroup.getKey().getName());
+        assertEquals(PDP_GROUP0, testJpaPdpGroup.getKey().getName());
+    }
+
+    @Test
+    public void testPdpGroupValidation() {
+        JpaPdpGroup testJpaPdpGroup = setUpSmallJpaPdpGroup();
 
         assertThatThrownBy(() -> {
             testJpaPdpGroup.validate(null);
-        }).hasMessage("resultIn is marked @NonNull but is null");
+        }).hasMessageMatching("fieldName" + NULL_ERROR);
 
-        assertFalse(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpGroup.validate("").isValid());
         testJpaPdpGroup.setPdpGroupState(PdpState.PASSIVE);
-        assertTrue(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpGroup.validate("").isValid());
 
         testJpaPdpGroup.setKey(PfConceptKey.getNullKey());
-        assertFalse(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
-        testJpaPdpGroup.setKey(new PfConceptKey("PdpGroup0", "1.0.0"));
-        assertTrue(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpGroup.validate("").isValid());
+        testJpaPdpGroup.setKey(new PfConceptKey("PdpGroup0", VERSION));
+        assertTrue(testJpaPdpGroup.validate("").isValid());
 
         testJpaPdpGroup.setDescription("   ");
-        assertFalse(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpGroup.validate("").isValid());
         testJpaPdpGroup.setDescription("  A Description ");
-        assertTrue(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpGroup.validate("").isValid());
         testJpaPdpGroup.setDescription(null);
-        assertTrue(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpGroup.validate("").isValid());
 
         testJpaPdpGroup.setProperties(new LinkedHashMap<>());
         testJpaPdpGroup.getProperties().put(null, null);
-        assertFalse(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpGroup.validate("").isValid());
         testJpaPdpGroup.getProperties().remove(null);
-        assertTrue(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpGroup.validate("").isValid());
 
         testJpaPdpGroup.setProperties(new LinkedHashMap<>());
         testJpaPdpGroup.getProperties().put("NullKey", null);
-        assertFalse(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpGroup.validate("").isValid());
         testJpaPdpGroup.getProperties().remove("NullKey");
-        assertTrue(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpGroup.validate("").isValid());
+    }
+
+    @Test
+    public void testPdpSubgroups() {
+        JpaPdpGroup testJpaPdpGroup = setUpJpaPdpGroup();
 
         List<JpaPdpSubGroup> jpaPdpSubgroups = testJpaPdpGroup.getPdpSubGroups();
         assertNotNull(jpaPdpSubgroups);
         testJpaPdpGroup.setPdpSubGroups(null);
-        assertFalse(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertFalse(testJpaPdpGroup.validate("").isValid());
         testJpaPdpGroup.setPdpSubGroups(new ArrayList<>());
-        assertTrue(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpGroup.validate("").isValid());
         testJpaPdpGroup.setPdpSubGroups(jpaPdpSubgroups);
-        assertTrue(testJpaPdpGroup.validate(new PfValidationResult()).isOk());
+        assertTrue(testJpaPdpGroup.validate("").isValid());
 
         JpaPdpGroup otherJpaPdpGroup = new JpaPdpGroup(testJpaPdpGroup);
         assertEquals(0, testJpaPdpGroup.compareTo(otherJpaPdpGroup));
         assertEquals(-1, testJpaPdpGroup.compareTo(null));
         assertEquals(0, testJpaPdpGroup.compareTo(testJpaPdpGroup));
-        assertFalse(testJpaPdpGroup.compareTo(new DummyJpaPdpSubgroupChild()) == 0);
+        assertNotEquals(0, testJpaPdpGroup.compareTo(new DummyJpaPdpSubgroupChild()));
 
         testJpaPdpGroup.getKey().setName("OtherName");
         assertEquals(-1, testJpaPdpGroup.compareTo(otherJpaPdpGroup));
@@ -218,8 +218,12 @@ public class JpaPdpGroupTest {
         psg = testJpaPdpGroup.toAuthorative();
         assertNull(psg.getProperties());
         testJpaPdpGroup.setProperties(new LinkedHashMap<>());
+    }
+
+    @Test
+    public void testPdpGroupsProperties() {
+        JpaPdpGroup testJpaPdpGroup = setUpJpaPdpGroup();
 
-        testJpaPdpGroup.clean();
         testJpaPdpGroup.getProperties().put(" PropKey ", " Prop Value ");
         testJpaPdpGroup.clean();
         assertEquals("PropKey", testJpaPdpGroup.getProperties().keySet().iterator().next());
@@ -228,10 +232,41 @@ public class JpaPdpGroupTest {
         testJpaPdpGroup.clean();
         assertEquals("A Description", testJpaPdpGroup.getDescription());
 
+        JpaPdpSubGroup anotherPdpSubgroup =
+                new JpaPdpSubGroup(new PfReferenceKey(testJpaPdpGroup.getKey(), "AnotherPdpSubgroup"));
+
         assertEquals(1, testJpaPdpGroup.getKeys().size());
         testJpaPdpGroup.getPdpSubGroups().add(anotherPdpSubgroup);
         assertEquals(2, testJpaPdpGroup.getKeys().size());
         testJpaPdpGroup.clean();
         assertEquals(2, testJpaPdpGroup.getKeys().size());
+
+        assertEquals(testJpaPdpGroup, new JpaPdpGroup(testJpaPdpGroup));
+    }
+
+    private JpaPdpGroup setUpSmallJpaPdpGroup() {
+        PdpGroup testPdpGroup = new PdpGroup();
+        testPdpGroup.setName(PDP_GROUP0);
+        testPdpGroup.setPdpSubgroups(new ArrayList<>());
+        testPdpGroup.setVersion(VERSION);
+
+        JpaPdpGroup testJpaPdpGroup = new JpaPdpGroup();
+        testJpaPdpGroup.setKey(new PfConceptKey(PDP_GROUP0, VERSION));
+        testJpaPdpGroup.fromAuthorative(testPdpGroup);
+        testJpaPdpGroup.clean();
+
+        return testJpaPdpGroup;
+    }
+
+    private JpaPdpGroup setUpJpaPdpGroup() {
+        JpaPdpGroup testJpaPdpGroup = setUpSmallJpaPdpGroup();
+
+        testJpaPdpGroup.setKey(new PfConceptKey("PdpGroup0", VERSION));
+        testJpaPdpGroup.setDescription(null);
+        testJpaPdpGroup.setPdpGroupState(PdpState.PASSIVE);
+        testJpaPdpGroup.setProperties(new LinkedHashMap<>());
+        testJpaPdpGroup.clean();
+
+        return testJpaPdpGroup;
     }
 }