Updating PAP deployment API to reflect actual status
[policy/pap.git] / main / src / test / java / org / onap / policy / pap / main / rest / TestPolicyStatusProvider.java
index 44c8d82..81ed680 100644 (file)
@@ -3,6 +3,7 @@
  * ONAP
  * ================================================================================
  * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2021 Bell Canada. 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 +22,8 @@
 package org.onap.policy.pap.main.rest;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.when;
 
 import java.util.ArrayList;
@@ -77,27 +80,12 @@ public class TestPolicyStatusProvider extends ProviderSuper {
     @Test
     public void testGetStatus_testAccumulate() throws PfModelException {
 
-        PdpPolicyStatusBuilder builder = PdpPolicyStatus.builder().pdpGroup(MY_GROUP).pdpType(MY_PDP_TYPE)
-                        .policyType(POLICY_TYPE).state(State.WAITING);
-
-        PdpPolicyStatus notDeployed = builder.deploy(false).policy(POLICY_B).pdpId(PDP_A).build();
-
-        // remaining policies are deployed
-        builder.deploy(true);
-
-        // @formatter:off
-        when(dao.getAllPolicyStatus()).thenReturn(List.of(
-                        builder.policy(POLICY_A).pdpId(PDP_A).build(),
-                        builder.policy(POLICY_A).pdpId(PDP_B).build(),
-                        notDeployed,
-                        builder.policy(POLICY_C).pdpId(PDP_A).build()
-                        ));
-        // @formatter:on
+        buildPolicyStatusToReturn1();
 
         List<PolicyStatus> result = new ArrayList<>(prov.getStatus());
         Collections.sort(result, (rec1, rec2) -> rec1.getPolicy().compareTo(rec2.getPolicy()));
 
-        assertThat(result).hasSize(2);
+        assertThat(result).hasSize(3);
 
         Iterator<PolicyStatus> iter = result.iterator();
 
@@ -108,6 +96,13 @@ public class TestPolicyStatusProvider extends ProviderSuper {
         assertThat(status.getFailureCount()).isZero();
         assertThat(status.getSuccessCount()).isZero();
 
+        status = iter.next();
+        assertThat(status.getPolicy()).isEqualTo(POLICY_B);
+        assertThat(status.getPolicyType()).isEqualTo(POLICY_TYPE);
+        assertThat(status.getIncompleteCount()).isZero();
+        assertThat(status.getFailureCount()).isZero();
+        assertThat(status.getSuccessCount()).isEqualTo(1);
+
         status = iter.next();
         assertThat(status.getPolicy()).isEqualTo(POLICY_C);
         assertThat(status.getPolicyType()).isEqualTo(POLICY_TYPE);
@@ -119,8 +114,113 @@ public class TestPolicyStatusProvider extends ProviderSuper {
     @Test
     public void testGetStatusToscaConceptIdentifierOptVersion() throws PfModelException {
 
+        ToscaConceptIdentifierOptVersion optIdent = buildPolicyStatusToReturn2();
+
+        List<PolicyStatus> result = new ArrayList<>(prov.getStatus(optIdent));
+        assertThat(result).hasSize(1);
+
+        Iterator<PolicyStatus> iter = result.iterator();
+
+        PolicyStatus status = iter.next();
+        assertThat(status.getPolicy()).isEqualTo(POLICY_A);
+        assertThat(status.getPolicyType()).isEqualTo(POLICY_TYPE);
+        assertThat(status.getIncompleteCount()).isEqualTo(2);
+        assertThat(status.getFailureCount()).isZero();
+        assertThat(status.getSuccessCount()).isZero();
+    }
+
+    @Test
+    public void testGetPolicyStatus() throws PfModelException {
+
+        buildPolicyStatusToReturn1();
+
+        List<PdpPolicyStatus> result = new ArrayList<>(prov.getPolicyStatus());
+        Collections.sort(result, (rec1, rec2) -> rec1.getPolicy().compareTo(rec2.getPolicy()));
+
+        assertThat(result).hasSize(5);
+        Iterator<PdpPolicyStatus> iter = result.iterator();
+
+        PdpPolicyStatus status = iter.next();
+        assertThat(status.getPolicy()).isEqualTo(POLICY_A);
+        assertThat(status.getPolicyType()).isEqualTo(POLICY_TYPE);
+        assertThat(status.getPdpId()).isEqualTo(PDP_A);
+        assertThat(status.getPdpType()).isEqualTo(MY_PDP_TYPE);
+        assertThat(status.getPdpGroup()).isEqualTo(MY_GROUP);
+        assertTrue(status.isDeploy());
+        assertThat(status.getState()).isEqualTo(State.WAITING);
+
+        status = iter.next();
+        assertThat(status.getPolicy()).isEqualTo(POLICY_A);
+        assertThat(status.getPdpId()).isEqualTo(PDP_B);
+        assertTrue(status.isDeploy());
+        assertThat(status.getState()).isEqualTo(State.WAITING);
+
+        status = iter.next();
+        assertThat(status.getPolicy()).isEqualTo(POLICY_B);
+        assertThat(status.getPdpId()).isEqualTo(PDP_A);
+        assertFalse(status.isDeploy());
+        assertThat(status.getState()).isEqualTo(State.WAITING);
+
+        status = iter.next();
+        assertThat(status.getPolicy()).isEqualTo(POLICY_B);
+        assertThat(status.getPdpId()).isEqualTo(PDP_B);
+        assertTrue(status.isDeploy());
+        assertThat(status.getState()).isEqualTo(State.SUCCESS);
+    }
+
+    @Test
+    public void testGetPolicyStatusByGroupAndPolicyIdVersion() throws PfModelException {
+
+        ToscaConceptIdentifierOptVersion optIdent = buildPolicyStatusToReturn2();
+
+        List<PdpPolicyStatus> result = new ArrayList<>(prov.getPolicyStatus(MY_GROUP, optIdent));
+        assertThat(result).hasSize(3);
+
+        Iterator<PdpPolicyStatus> iter = result.iterator();
+
+        PdpPolicyStatus status = iter.next();
+        assertThat(status.getPolicy()).isEqualTo(POLICY_A);
+        assertThat(status.getPolicyType()).isEqualTo(POLICY_TYPE);
+        assertThat(status.getPdpId()).isEqualTo(PDP_A);
+        assertThat(status.getPdpType()).isEqualTo(MY_PDP_TYPE);
+        assertThat(status.getPdpGroup()).isEqualTo(MY_GROUP);
+        assertTrue(status.isDeploy());
+        assertThat(status.getState()).isEqualTo(State.WAITING);
+
+        status = iter.next();
+        assertThat(status.getPolicy()).isEqualTo(POLICY_A);
+        assertThat(status.getPolicyType()).isEqualTo(POLICY_TYPE);
+        assertThat(status.getPdpId()).isEqualTo(PDP_B);
+        assertThat(status.getPdpType()).isEqualTo(MY_PDP_TYPE);
+        assertThat(status.getPdpGroup()).isEqualTo(MY_GROUP);
+        assertFalse(status.isDeploy());
+        assertThat(status.getState()).isEqualTo(State.FAILURE);
+    }
+
+    private void buildPolicyStatusToReturn1() throws PfModelException {
+
         PdpPolicyStatusBuilder builder = PdpPolicyStatus.builder().pdpGroup(MY_GROUP).pdpType(MY_PDP_TYPE)
-                        .policy(POLICY_A).policyType(POLICY_TYPE);
+            .policyType(POLICY_TYPE).state(State.WAITING);
+
+        PdpPolicyStatus notDeployed = builder.deploy(false).policy(POLICY_B).pdpId(PDP_A).build();
+
+        // remaining policies are deployed
+        builder.deploy(true);
+
+        // @formatter:off
+        when(dao.getAllPolicyStatus()).thenReturn(List.of(
+                        builder.policy(POLICY_A).pdpId(PDP_A).build(),
+                        builder.policy(POLICY_A).pdpId(PDP_B).build(),
+                        notDeployed,
+                        builder.policy(POLICY_C).pdpId(PDP_A).build(),
+                        builder.policy(POLICY_B).pdpId(PDP_B).state(State.SUCCESS).build()
+                    ));
+        // @formatter:on
+    }
+
+    private ToscaConceptIdentifierOptVersion buildPolicyStatusToReturn2() throws PfModelException {
+        PdpPolicyStatusBuilder builder =
+            PdpPolicyStatus.builder().pdpGroup(MY_GROUP).pdpType(MY_PDP_TYPE).policy(POLICY_A).policyType(POLICY_TYPE);
 
         PdpPolicyStatus notDeployed = builder.deploy(false).pdpId(PDP_B).state(State.FAILURE).build();
 
@@ -136,17 +236,6 @@ public class TestPolicyStatusProvider extends ProviderSuper {
                         builder.policy(POLICY_A).pdpId(PDP_C).build()
                         ));
         // @formatter:on
-
-        List<PolicyStatus> result = new ArrayList<>(prov.getStatus(optIdent));
-        assertThat(result).hasSize(1);
-
-        Iterator<PolicyStatus> iter = result.iterator();
-
-        PolicyStatus status = iter.next();
-        assertThat(status.getPolicy()).isEqualTo(POLICY_A);
-        assertThat(status.getPolicyType()).isEqualTo(POLICY_TYPE);
-        assertThat(status.getIncompleteCount()).isEqualTo(2);
-        assertThat(status.getFailureCount()).isZero();
-        assertThat(status.getSuccessCount()).isZero();
+        return optIdent;
     }
 }