From 07f9418952d3dec141d6953099e0456f85f68807 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Mon, 29 Mar 2021 16:31:23 -0400 Subject: Validate parameters of REST calls Added code to validate the parameters of the REST calls. As it turned out, validation only needed to be added to one call. Issue-ID: POLICY-2542 Change-Id: Ia9aabf75e06d6d5f996be9e3ed804218319f70c2 Signed-off-by: Jim Hahn --- .../pap/main/rest/TestPdpGroupDeployProvider.java | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'main/src/test/java/org/onap') diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupDeployProvider.java b/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupDeployProvider.java index a7f48ff3..575dfefc 100644 --- a/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupDeployProvider.java +++ b/main/src/test/java/org/onap/policy/pap/main/rest/TestPdpGroupDeployProvider.java @@ -55,6 +55,7 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; public class TestPdpGroupDeployProvider extends ProviderSuper { + private static final String EXPECTED_EXCEPTION = "expected exception"; private static final String POLICY2_NAME = "policyB"; @@ -474,6 +475,44 @@ public class TestPdpGroupDeployProvider extends ProviderSuper { assertThatCode(() -> prov.deployPolicies(loadEmptyRequest())).doesNotThrowAnyException(); } + /** + * Tests deployPolicies() when the policies are invalid. + */ + @Test + public void testDeployPoliciesInvalidPolicies() throws Exception { + // valid list + PdpDeployPolicies policies0 = loadFile("PapPoliciesList.json", PdpDeployPolicies.class); + assertThatCode(() -> prov.deployPolicies(policies0)).doesNotThrowAnyException(); + + // null list + PdpDeployPolicies policies = new PdpDeployPolicies(); + assertThatThrownBy(() -> prov.deployPolicies(policies)).isInstanceOf(PfModelException.class) + .hasMessageContaining("policies"); + + // list containing null item + PdpDeployPolicies policies2 = loadFile("PapPoliciesNullItem.json", PdpDeployPolicies.class); + assertThatThrownBy(() -> prov.deployPolicies(policies2)).isInstanceOf(PfModelException.class) + .hasMessageContaining("policies").hasMessageContaining("null"); + + // list containing a policy with a null name + PdpDeployPolicies policies3 = loadFile("PapPoliciesNullPolicyName.json", PdpDeployPolicies.class); + assertThatThrownBy(() -> prov.deployPolicies(policies3)).isInstanceOf(PfModelException.class) + .hasMessageContaining("policies").hasMessageContaining("name").hasMessageContaining("null") + .hasMessageNotContaining("\"value\""); + + // list containing a policy with an invalid name + PdpDeployPolicies policies4 = loadFile("PapPoliciesInvalidPolicyName.json", PdpDeployPolicies.class); + assertThatThrownBy(() -> prov.deployPolicies(policies4)).isInstanceOf(PfModelException.class) + .hasMessageContaining("policies").hasMessageContaining("name").hasMessageContaining("$ abc") + .hasMessageNotContaining("version"); + + // list containing a policy with an invalid version + PdpDeployPolicies policies5 = loadFile("PapPoliciesInvalidPolicyVersion.json", PdpDeployPolicies.class); + assertThatThrownBy(() -> prov.deployPolicies(policies5)).isInstanceOf(PfModelException.class) + .hasMessageContaining("policies").hasMessageContaining("version").hasMessageContaining("abc123") + .hasMessageNotContaining("name"); + } + /** * Tests deployPolicies() when the supported policy type uses a wild-card. * -- cgit 1.2.3-korg