aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Hernandez <jorge.hernandez-herrero@att.com>2019-04-20 16:09:11 +0000
committerGerrit Code Review <gerrit@onap.org>2019-04-20 16:09:11 +0000
commit4ca155ec2ca6663826d749c7443b0249e703323e (patch)
treeb31502501bc3ba0d2e6a51237af4aa4bd4d462f9
parent61355e15d46059f2b29689d2f0a9cc359cf0ddd5 (diff)
parentd81d38b787fd33cfe221f2ef55fdb913333d479c (diff)
Merge "Handle null policy lists"
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java2
-rw-r--r--main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java22
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java41
3 files changed, 60 insertions, 5 deletions
diff --git a/main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java b/main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java
index a11a4e7e..04bab743 100644
--- a/main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java
+++ b/main/src/main/java/org/onap/policy/pap/main/comm/PdpModifyRequestMap.java
@@ -21,6 +21,7 @@
package org.onap.policy.pap.main.comm;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -386,6 +387,7 @@ public class PdpModifyRequestMap {
// send an update, too
PdpUpdate update = new PdpUpdate();
update.setName(requests.getPdpName());
+ update.setPolicies(Collections.emptyList());
addRequest(update, change);
diff --git a/main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java b/main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java
index 9067131f..8efdb7ca 100644
--- a/main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java
+++ b/main/src/main/java/org/onap/policy/pap/main/comm/msgdata/UpdateReq.java
@@ -20,7 +20,9 @@
package org.onap.policy.pap.main.comm.msgdata;
+import java.util.Collections;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
@@ -72,9 +74,9 @@ public class UpdateReq extends RequestImpl {
}
// see if the policies match
- Set<ToscaPolicyIdentifier> set1 = new HashSet<>(response.getPolicies());
- Set<ToscaPolicyIdentifier> set2 = new HashSet<>(
- message.getPolicies().stream().map(ToscaPolicy::getIdentifier).collect(Collectors.toSet()));
+ Set<ToscaPolicyIdentifier> set1 = new HashSet<>(alwaysList(response.getPolicies()));
+ Set<ToscaPolicyIdentifier> set2 = new HashSet<>(alwaysList(message.getPolicies()).stream()
+ .map(ToscaPolicy::getIdentifier).collect(Collectors.toSet()));
if (!set1.equals(set2)) {
return "policies do not match";
@@ -101,12 +103,22 @@ public class UpdateReq extends RequestImpl {
}
// see if the policies are the same
- Set<ToscaPolicy> set1 = new HashSet<>(first.getPolicies());
- Set<ToscaPolicy> set2 = new HashSet<>(second.getPolicies());
+ Set<ToscaPolicy> set1 = new HashSet<>(alwaysList(first.getPolicies()));
+ Set<ToscaPolicy> set2 = new HashSet<>(alwaysList(second.getPolicies()));
return set1.equals(set2);
}
+ /**
+ * Always get a list, even if the original is {@code null}.
+ *
+ * @param list the original list, or {@code null}
+ * @return the list, or an empty list if the original was {@code null}
+ */
+ private <T> List<T> alwaysList(List<T> list) {
+ return (list != null ? list : Collections.emptyList());
+ }
+
@Override
public int getPriority() {
return 1;
diff --git a/main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java b/main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java
index 156e9c80..a7987701 100644
--- a/main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java
+++ b/main/src/test/java/org/onap/policy/pap/main/comm/msgdata/UpdateReqTest.java
@@ -73,6 +73,11 @@ public class UpdateReqTest extends CommonRequestBase {
@Test
public void testCheckResponse() {
assertNull(data.checkResponse(response));
+
+ // both policy lists null
+ update.setPolicies(null);
+ response.setPolicies(null);
+ assertNull(data.checkResponse(response));
}
@Test
@@ -114,6 +119,20 @@ public class UpdateReqTest extends CommonRequestBase {
}
@Test
+ public void testUpdateReqCheckResponse_MismatchedPolicies_Null_NotNull() {
+ update.setPolicies(null);
+
+ assertEquals("policies do not match", data.checkResponse(response));
+ }
+
+ @Test
+ public void testUpdateReqCheckResponse_MismatchedPolicies_NotNull_Null() {
+ response.setPolicies(null);
+
+ assertEquals("policies do not match", data.checkResponse(response));
+ }
+
+ @Test
public void isSameContent() {
PdpUpdate msg2 = new PdpUpdate(update);
msg2.setName("world");
@@ -121,6 +140,11 @@ public class UpdateReqTest extends CommonRequestBase {
// different request type
assertFalse(data.isSameContent(new StateChangeReq(reqParams, MY_REQ_NAME, new PdpStateChange())));
+
+ // both policy lists null
+ update.setPolicies(null);
+ msg2.setPolicies(null);
+ assertTrue(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
}
@Test
@@ -177,6 +201,23 @@ public class UpdateReqTest extends CommonRequestBase {
}
@Test
+ public void isSameContent_DiffPolicies_NotNull_Null() {
+ PdpUpdate msg2 = new PdpUpdate(update);
+ msg2.setPolicies(null);
+
+ assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
+ }
+
+ @Test
+ public void isSameContent_DiffPolicies_Null_NotNull() {
+ PdpUpdate msg2 = new PdpUpdate(update);
+
+ update.setPolicies(null);
+
+ assertFalse(data.isSameContent(new UpdateReq(reqParams, MY_REQ_NAME, msg2)));
+ }
+
+ @Test
public void testGetPriority() {
assertTrue(data.getPriority() > new StateChangeReq(reqParams, MY_REQ_NAME, new PdpStateChange()).getPriority());
}