summaryrefslogtreecommitdiffstats
path: root/main/src/test
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2019-04-23 13:27:55 -0400
committerJim Hahn <jrh3@att.com>2019-04-24 13:07:50 -0400
commitcccfb11b59becaaf86adc4c88600bd70f2519b0d (patch)
treefbab9aabd089f0943a5bdbfd5a97e1fa80e674c4 /main/src/test
parenta6cb1f27c8fe26b02abbd6a3fcf876ec306e6a5a (diff)
Validate supported types3.0.2-ONAP
When a group is created, PAP should verify that the "supported types" exist in the DB. Address potential sonar issue. Address potential sonar issue in similar block of code. Change-Id: Ib830550bc37d4ebe42c8782f3f874e463f3f51c2 Issue-ID: POLICY-1688 Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'main/src/test')
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/depundep/ProviderSuper.java11
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestPdpGroupDeployProvider.java27
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestProviderBase.java11
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestSessionData.java40
-rw-r--r--main/src/test/resources/e2e/monitoring.policy-type.yaml2
-rw-r--r--main/src/test/resources/simpleDeploy/daoPolicyType.json4
6 files changed, 90 insertions, 5 deletions
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/depundep/ProviderSuper.java b/main/src/test/java/org/onap/policy/pap/main/rest/depundep/ProviderSuper.java
index 256d3af0..2fca6848 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/depundep/ProviderSuper.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/depundep/ProviderSuper.java
@@ -48,6 +48,7 @@ import org.onap.policy.models.pdp.concepts.PdpStateChange;
import org.onap.policy.models.pdp.concepts.PdpUpdate;
import org.onap.policy.models.provider.PolicyModelsProvider;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
import org.onap.policy.pap.main.PapConstants;
import org.onap.policy.pap.main.PolicyModelsProviderFactoryWrapper;
import org.onap.policy.pap.main.comm.PdpModifyRequestMap;
@@ -234,6 +235,16 @@ public class ProviderSuper {
}
/**
+ * Loads a policy type.
+ *
+ * @param fileName name of the file from which to load
+ * @return a policy type
+ */
+ protected ToscaPolicyType loadPolicyType(String fileName) {
+ return loadFile(fileName, ToscaPolicyType.class);
+ }
+
+ /**
* Loads an object from a JSON file.
*
* @param fileName name of the file from which to load
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestPdpGroupDeployProvider.java b/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestPdpGroupDeployProvider.java
index 406345c6..81664176 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestPdpGroupDeployProvider.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestPdpGroupDeployProvider.java
@@ -83,6 +83,7 @@ public class TestPdpGroupDeployProvider extends ProviderSuper {
super.setUp();
when(dao.getFilteredPolicyList(any())).thenReturn(loadPolicies("daoPolicyList.json"));
+ when(dao.getPolicyTypeList("typeA", "100.2.3")).thenReturn(Arrays.asList(loadPolicyType("daoPolicyType.json")));
prov = new PdpGroupDeployProvider();
}
@@ -357,13 +358,35 @@ public class TestPdpGroupDeployProvider extends ProviderSuper {
}
@Test
+ public void testAddSubGroup_ValidationPolicyTypeNotFound() throws Exception {
+ PdpGroups groups = loadPdpGroups("createGroupsNewSub.json");
+ PdpGroup group = loadPdpGroups("createGroups.json").getGroups().get(0);
+ when(dao.getPdpGroups(group.getName())).thenReturn(Arrays.asList(group));
+
+ when(dao.getPolicyTypeList(any(), any())).thenReturn(Collections.emptyList());
+
+ assertThatThrownBy(() -> prov.createOrUpdateGroups(groups)).hasMessageContaining("unknown policy type");
+ }
+
+ @Test
+ public void testAddSubGroup_ValidationPolicyTypeDaoEx() throws Exception {
+ PdpGroups groups = loadPdpGroups("createGroupsNewSub.json");
+ PdpGroup group = loadPdpGroups("createGroups.json").getGroups().get(0);
+ when(dao.getPdpGroups(group.getName())).thenReturn(Arrays.asList(group));
+
+ PfModelException exc = new PfModelException(Status.CONFLICT, EXPECTED_EXCEPTION);
+ when(dao.getPolicyTypeList(any(), any())).thenThrow(exc);
+
+ assertThatThrownBy(() -> prov.createOrUpdateGroups(groups)).isSameAs(exc);
+ }
+
+ @Test
public void testAddSubGroup_ValidationPolicyNotFound() throws Exception {
PdpGroups groups = loadPdpGroups("createGroupsNewSub.json");
PdpGroup group = loadPdpGroups("createGroups.json").getGroups().get(0);
when(dao.getPdpGroups(group.getName())).thenReturn(Arrays.asList(group));
- PfModelException exc = new PfModelException(Status.NOT_FOUND, EXPECTED_EXCEPTION);
- when(dao.getFilteredPolicyList(any())).thenThrow(exc);
+ when(dao.getFilteredPolicyList(any())).thenReturn(Collections.emptyList());
assertThatThrownBy(() -> prov.createOrUpdateGroups(groups)).hasMessageContaining("unknown policy");
}
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestProviderBase.java b/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestProviderBase.java
index e8ddd821..55c6f3d4 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestProviderBase.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestProviderBase.java
@@ -151,6 +151,17 @@ public class TestProviderBase extends ProviderSuper {
}
@Test
+ public void testGetPolicy_NotFound() throws Exception {
+ when(dao.getFilteredPolicyList(any())).thenReturn(Collections.emptyList());
+
+ assertThatThrownBy(() -> prov.process(loadRequest(), this::handle)).isInstanceOf(PfModelRuntimeException.class)
+ .hasMessage("cannot find policy: policyA 1.2.3").matches(thr -> {
+ PfModelRuntimeException exc = (PfModelRuntimeException) thr;
+ return (exc.getErrorResponse().getResponseCode() == Status.NOT_FOUND);
+ });
+ }
+
+ @Test
public void testGetGroup() throws Exception {
when(dao.getFilteredPdpGroups(any())).thenReturn(loadGroups("getGroupDao.json"))
.thenReturn(loadGroups("groups.json"));
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestSessionData.java b/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestSessionData.java
index 17acd5a2..f586d167 100644
--- a/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestSessionData.java
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/depundep/TestSessionData.java
@@ -51,6 +51,7 @@ import org.onap.policy.models.pdp.concepts.PdpUpdate;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifierOptVersion;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
public class TestSessionData extends ProviderSuper {
@@ -91,6 +92,32 @@ public class TestSessionData extends ProviderSuper {
}
@Test
+ public void testGetPolicyType() throws Exception {
+ ToscaPolicyType policy1 = makePolicyType(POLICY_TYPE, POLICY_TYPE_VERSION);
+ when(dao.getPolicyTypeList(POLICY_TYPE, POLICY_TYPE_VERSION)).thenReturn(Arrays.asList(policy1));
+
+ assertSame(policy1, session.getPolicyType(type));
+
+ // retrieve a second time - should use cache
+ assertSame(policy1, session.getPolicyType(type));
+ }
+
+ @Test
+ public void testGetPolicyType_NotFound() throws Exception {
+ when(dao.getPolicyTypeList(any(), any())).thenReturn(Collections.emptyList());
+
+ assertNull(session.getPolicyType(type));
+ }
+
+ @Test
+ public void testGetPolicyType_DaoEx() throws Exception {
+ PfModelException ex = new PfModelException(Status.INTERNAL_SERVER_ERROR, EXPECTED_EXCEPTION);
+ when(dao.getPolicyTypeList(POLICY_TYPE, POLICY_TYPE_VERSION)).thenThrow(ex);
+
+ assertThatThrownBy(() -> session.getPolicyType(type)).isSameAs(ex);
+ }
+
+ @Test
public void testGetPolicy_NullVersion() throws Exception {
ToscaPolicy policy1 = makePolicy(POLICY_NAME, POLICY_VERSION);
when(dao.getFilteredPolicyList(any())).thenReturn(Arrays.asList(policy1));
@@ -148,12 +175,12 @@ public class TestSessionData extends ProviderSuper {
public void testGetPolicy_NotFound() throws Exception {
when(dao.getFilteredPolicyList(any())).thenReturn(Collections.emptyList());
- assertThatThrownBy(() -> session.getPolicy(ident)).hasMessage("cannot find policy: myPolicy 1.2.3");
+ assertNull(session.getPolicy(ident));
}
@Test
public void testGetPolicy_DaoEx() throws Exception {
- PfModelException ex = new PfModelException(Status.INTERNAL_SERVER_ERROR, "expected exception");
+ PfModelException ex = new PfModelException(Status.INTERNAL_SERVER_ERROR, EXPECTED_EXCEPTION);
when(dao.getFilteredPolicyList(any())).thenThrow(ex);
assertThatThrownBy(() -> session.getPolicy(ident)).isSameAs(ex);
@@ -270,6 +297,15 @@ public class TestSessionData extends ProviderSuper {
assertEquals(Arrays.asList(change1, change2, change3).toString(), lst.toString());
}
+ private ToscaPolicyType makePolicyType(String name, String version) {
+ ToscaPolicyType type = new ToscaPolicyType();
+
+ type.setName(name);
+ type.setVersion(version);
+
+ return type;
+ }
+
private ToscaPolicy makePolicy(String name, String version) {
ToscaPolicy policy = new ToscaPolicy();
diff --git a/main/src/test/resources/e2e/monitoring.policy-type.yaml b/main/src/test/resources/e2e/monitoring.policy-type.yaml
index 98b64522..28e5d6e5 100644
--- a/main/src/test/resources/e2e/monitoring.policy-type.yaml
+++ b/main/src/test/resources/e2e/monitoring.policy-type.yaml
@@ -6,7 +6,7 @@ policy_types:
description: a base policy type for all policies that governs monitoring provisioning
version: 1.0.0
-
- onap.policy.monitoring.cdap.tca.hi.lo.app:
+ onap.policies.monitoring.cdap.tca.hi.lo.app:
derived_from: onap.policies.Monitoring
version: 1.0.0
properties:
diff --git a/main/src/test/resources/simpleDeploy/daoPolicyType.json b/main/src/test/resources/simpleDeploy/daoPolicyType.json
new file mode 100644
index 00000000..e71bf980
--- /dev/null
+++ b/main/src/test/resources/simpleDeploy/daoPolicyType.json
@@ -0,0 +1,4 @@
+{
+ "name": "typeA",
+ "version": "100.2.3"
+}