aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/test/java/org/onap/policy/pap/main/rest/e2e/PdpGroupStateChangeTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/test/java/org/onap/policy/pap/main/rest/e2e/PdpGroupStateChangeTest.java')
-rw-r--r--main/src/test/java/org/onap/policy/pap/main/rest/e2e/PdpGroupStateChangeTest.java135
1 files changed, 135 insertions, 0 deletions
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/e2e/PdpGroupStateChangeTest.java b/main/src/test/java/org/onap/policy/pap/main/rest/e2e/PdpGroupStateChangeTest.java
new file mode 100644
index 00000000..6fdd516b
--- /dev/null
+++ b/main/src/test/java/org/onap/policy/pap/main/rest/e2e/PdpGroupStateChangeTest.java
@@ -0,0 +1,135 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP PAP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.pap.main.rest.e2e;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.util.Collections;
+import javax.ws.rs.client.Entity;
+import javax.ws.rs.client.Invocation;
+import javax.ws.rs.core.Response;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.models.pap.concepts.PdpGroupStateChangeResponse;
+import org.onap.policy.models.pdp.concepts.PdpStatus;
+import org.onap.policy.models.pdp.enums.PdpState;
+
+public class PdpGroupStateChangeTest extends End2EndBase {
+ private static final String PDP1 = "pdpAA_1";
+ private static final String PDP2 = "pdpAA_2";
+ private static final String PDP3 = "pdpAB_1";
+ private static final String SUBGROUP1 = "pdpTypeA";
+ private static final String SUBGROUP2 = "pdpTypeB";
+ private static final String DEACT_GROUP = "stateChangeGroupDeactivate";
+ private static final String GROUP_ENDPOINT = "pdps/groups";
+
+ /**
+ * Starts Main and adds policies to the DB.
+ *
+ * @throws Exception if an error occurs
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ End2EndBase.setUpBeforeClass();
+
+ addToscaPolicyTypes("monitoring.policy-type.yaml");
+ addToscaPolicies("monitoring.policy.yaml");
+ }
+
+ /**
+ * Sets up.
+ */
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+
+ context = new End2EndContext();
+ }
+
+ @Test
+ public void testMakePassive() throws Exception {
+ addGroups("stateChangeGroupDeactivate.json");
+
+ PdpStatus status11 = new PdpStatus();
+ status11.setName(PDP1);
+ status11.setState(PdpState.ACTIVE);
+ status11.setPdpGroup(DEACT_GROUP);
+ status11.setPdpType(SUBGROUP1);
+ status11.setPdpSubgroup(SUBGROUP1);
+ status11.setPolicies(Collections.emptyList());
+
+ PdpStatus status12 = makeCopy(status11);
+ status12.setState(PdpState.PASSIVE);
+
+ PdpStatus status21 = new PdpStatus();
+ status21.setName(PDP2);
+ status21.setState(PdpState.ACTIVE);
+ status21.setPdpGroup(DEACT_GROUP);
+ status21.setPdpType(SUBGROUP1);
+ status21.setPdpSubgroup(SUBGROUP1);
+ status21.setPolicies(Collections.emptyList());
+
+ PdpStatus status22 = makeCopy(status21);
+ status22.setState(PdpState.PASSIVE);
+
+ PdpStatus status31 = new PdpStatus();
+ status31.setName(PDP3);
+ status31.setState(PdpState.ACTIVE);
+ status31.setPdpGroup(DEACT_GROUP);
+ status31.setPdpType(SUBGROUP2);
+ status31.setPdpSubgroup(SUBGROUP2);
+ status31.setPolicies(Collections.emptyList());
+
+ PdpStatus status32 = makeCopy(status31);
+ status32.setState(PdpState.PASSIVE);
+
+ context.addPdp(PDP1, SUBGROUP1).addReply(status11).addReply(status12);
+ context.addPdp(PDP2, SUBGROUP1).addReply(status21).addReply(status22);
+ context.addPdp(PDP3, SUBGROUP2).addReply(status31).addReply(status32);
+
+ context.startThreads();
+
+ String uri = GROUP_ENDPOINT + "/" + DEACT_GROUP + "?state=PASSIVE";
+
+ Invocation.Builder invocationBuilder = sendRequest(uri);
+ Response rawresp = invocationBuilder.put(Entity.json(""));
+ PdpGroupStateChangeResponse resp = rawresp.readEntity(PdpGroupStateChangeResponse.class);
+ assertEquals(Response.Status.OK.getStatusCode(), rawresp.getStatus());
+ assertNull(resp.getErrorDetails());
+
+ context.await();
+ }
+
+ private PdpStatus makeCopy(PdpStatus source) {
+ PdpStatus status = new PdpStatus();
+
+ status.setHealthy(source.getHealthy());
+ status.setName(source.getName());
+ status.setPdpGroup(source.getPdpGroup());
+ status.setPdpSubgroup(source.getPdpSubgroup());
+ status.setPdpType(source.getPdpType());
+ status.setPolicies(source.getPolicies());
+
+ return status;
+ }
+}