Return 200 when policy successfully undeployed 64/87464/2
authorJim Hahn <jrh3@att.com>
Fri, 10 May 2019 14:19:43 +0000 (10:19 -0400)
committerJim Hahn <jrh3@att.com>
Fri, 10 May 2019 14:45:00 +0000 (10:45 -0400)
The PAP Undeploy CSIT was failing, because it was returning 400.
The code was counting PDP UPDATE requests to determine whether or
not the policy had been found.  However, if a subgroup currently
has no PDPs assigned (as is the case with the CSIT), then there
will be no PDP UPDATEs, thus it will think that the policy was
not found and return 400.  Modified the code to count updates to
the DB instead.

Change-Id: I80cdcc738e07c418e0a7184284e7a228e3a6014d
Issue-ID: POLICY-1758
Signed-off-by: Jim Hahn <jrh3@att.com>
main/src/main/java/org/onap/policy/pap/main/rest/depundep/GroupData.java
main/src/main/java/org/onap/policy/pap/main/rest/depundep/SessionData.java
main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestGroupData.java
main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestSessionData.java

index f97107f..9ad9be2 100644 (file)
@@ -60,6 +60,15 @@ public class GroupData {
         this.state = (isNew ? State.CREATED : State.UNCHANGED);
     }
 
+    /**
+     * Determines if the group is unchanged (i.e., neither new nor updated).
+     *
+     * @return {@code true} if the group is unchanged, {@code false} otherwise
+     */
+    public boolean isUnchanged() {
+        return (state == State.UNCHANGED);
+    }
+
     /**
      * Determines if the group is new.
      *
index ab06bef..ee83fb7 100644 (file)
@@ -221,7 +221,7 @@ public class SessionData {
      * @return {@code true} if nothing was changed, {@code false} if something was changed
      */
     public boolean isUnchanged() {
-        return pdpRequests.isEmpty();
+        return groupCache.values().stream().allMatch(GroupData::isUnchanged);
     }
 
     /**
index 0c14aa2..92b30b2 100644 (file)
@@ -54,10 +54,12 @@ public class TestGroupData {
         data = new GroupData(oldGroup, true);
         assertSame(oldGroup, data.getGroup());
 
+        assertFalse(data.isUnchanged());
         assertTrue(data.isNew());
         assertFalse(data.isUpdated());
 
         data.update(newGroup);
+        assertFalse(data.isUnchanged());
         assertTrue(data.isNew());
         assertFalse(data.isUpdated());
         assertSame(newGroup, data.getGroup());
@@ -65,6 +67,7 @@ public class TestGroupData {
         // repeat with a new group
         newGroup = new PdpGroup(oldGroup);
         data.update(newGroup);
+        assertFalse(data.isUnchanged());
         assertTrue(data.isNew());
         assertFalse(data.isUpdated());
         assertSame(newGroup, data.getGroup());
@@ -72,11 +75,13 @@ public class TestGroupData {
 
     @Test
     public void testUpdateOnly() {
+        assertTrue(data.isUnchanged());
         assertFalse(data.isUpdated());
         assertSame(oldGroup, data.getGroup());
 
         data.update(newGroup);
 
+        assertFalse(data.isUnchanged());
         assertTrue(data.isUpdated());
         assertFalse(data.isNew());
         assertSame(newGroup, data.getGroup());
@@ -84,6 +89,7 @@ public class TestGroupData {
         // repeat
         newGroup = new PdpGroup(oldGroup);
         data.update(newGroup);
+        assertFalse(data.isUnchanged());
         assertTrue(data.isUpdated());
         assertFalse(data.isNew());
         assertSame(newGroup, data.getGroup());
index e7027c5..180c032 100644 (file)
@@ -189,9 +189,7 @@ public class TestSessionData extends ProviderSuper {
     }
 
     @Test
-    public void testIsUnchanged_testAddRequests_testGetPdpStateChanges_testGetPdpUpdates() {
-        assertTrue(session.isUnchanged());
-
+    public void testAddRequests_testGetPdpStateChanges_testGetPdpUpdates() {
         // pre-load with a update and state-change for other PDPs
         PdpUpdate update2 = makeUpdate(PDP2);
         session.addUpdate(update2);
@@ -203,7 +201,6 @@ public class TestSessionData extends ProviderSuper {
         PdpUpdate update = makeUpdate(PDP1);
         PdpStateChange change = makeStateChange(PDP1);
         session.addRequests(update, change);
-        assertFalse(session.isUnchanged());
         verifyRequests(update, update2, change, change3);
 
         /*
@@ -322,13 +319,17 @@ public class TestSessionData extends ProviderSuper {
 
     @Test
     public void testCreate() throws Exception {
+        assertTrue(session.isUnchanged());
+
         session.create(group1);
         assertSame(group1, session.getGroup(group1.getName()));
+        assertFalse(session.isUnchanged());
 
         // can add another
         session.create(group2);
         assertSame(group1, session.getGroup(group1.getName()));
         assertSame(group2, session.getGroup(group2.getName()));
+        assertFalse(session.isUnchanged());
 
         // cannot overwrite
         assertThatIllegalStateException().isThrownBy(() -> session.create(group1))
@@ -337,6 +338,8 @@ public class TestSessionData extends ProviderSuper {
 
     @Test
     public void testUpdate() throws Exception {
+        assertTrue(session.isUnchanged());
+
         // force the groups into the cache
         when(dao.getFilteredPdpGroups(any())).thenReturn(Arrays.asList(group1, group2));
         session.getActivePdpGroupsByPolicyType(type);
@@ -347,10 +350,12 @@ public class TestSessionData extends ProviderSuper {
         when(dao.getFilteredPdpGroups(any())).thenReturn(Arrays.asList(group1));
         PdpGroup newgrp = new PdpGroup(group1);
         session.update(newgrp);
+        assertFalse(session.isUnchanged());
 
         // repeat
         newgrp = new PdpGroup(group1);
         session.update(newgrp);
+        assertFalse(session.isUnchanged());
 
         /*
          * try group 2
@@ -358,10 +363,12 @@ public class TestSessionData extends ProviderSuper {
         when(dao.getFilteredPdpGroups(any())).thenReturn(Arrays.asList(group2));
         newgrp = new PdpGroup(group2);
         session.update(newgrp);
+        assertFalse(session.isUnchanged());
 
         // repeat
         newgrp = new PdpGroup(group2);
         session.update(newgrp);
+        assertFalse(session.isUnchanged());
     }
 
     @Test