diff options
Diffstat (limited to 'src/test')
5 files changed, 198 insertions, 0 deletions
diff --git a/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java b/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java new file mode 100644 index 000000000..1f57422c5 --- /dev/null +++ b/src/test/java/org/onap/clamp/policy/microservice/OperationalPolicyPayloadTest.java @@ -0,0 +1,64 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * 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.clamp.policy.microservice; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.google.gson.GsonBuilder; +import com.google.gson.JsonObject; + +import java.io.IOException; +import java.util.List; + +import org.junit.Test; +import org.onap.clamp.clds.util.ResourceFileUtil; +import org.onap.clamp.policy.operational.OperationalPolicy; +import org.skyscreamer.jsonassert.JSONAssert; + +public class OperationalPolicyPayloadTest { + + @Test + public void testOperationalPolicyPayloadConstruction() throws IOException { + JsonObject jsonConfig = new GsonBuilder().create().fromJson( + ResourceFileUtil.getResourceAsString("tosca/operational-policy-properties.json"), JsonObject.class); + OperationalPolicy policy = new OperationalPolicy("testPolicy", null, jsonConfig); + assertThat(policy.createPolicyPayload()) + .isEqualTo(ResourceFileUtil.getResourceAsString("tosca/operational-policy-payload.yaml")); + } + + @Test + public void testGuardPolicyPayloadConstruction() throws IOException { + JsonObject jsonConfig = new GsonBuilder().create().fromJson( + ResourceFileUtil.getResourceAsString("tosca/operational-policy-properties.json"), JsonObject.class); + OperationalPolicy policy = new OperationalPolicy("testPolicy", null, jsonConfig); + + List<String> guardsList = policy.createGuardPolicyPayloads(); + + JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/guard1-policy-payload.json"), + guardsList.get(0), false); + + JSONAssert.assertEquals(ResourceFileUtil.getResourceAsString("tosca/guard2-policy-payload.json"), + guardsList.get(1), false); + } +} diff --git a/src/test/resources/tosca/guard1-policy-payload.json b/src/test/resources/tosca/guard1-policy-payload.json new file mode 100644 index 000000000..bacf174fe --- /dev/null +++ b/src/test/resources/tosca/guard1-policy-payload.json @@ -0,0 +1,16 @@ +{ + "policy-id": "guard1", + "contents": { + "recipe": "Rebuild", + "actor": "SO", + "clname": "testloop", + "guardTargets": ".*", + "minGuard": "3", + "maxGuard": "7", + "limitGuard": "", + "timeUnitsGuard": "", + "timeWindowGuard": "", + "guardActiveStart": "00:00:01-05:00", + "guardActiveEnd": "23:59:01-05:00" + } +}
\ No newline at end of file diff --git a/src/test/resources/tosca/guard2-policy-payload.json b/src/test/resources/tosca/guard2-policy-payload.json new file mode 100644 index 000000000..89f7ec89c --- /dev/null +++ b/src/test/resources/tosca/guard2-policy-payload.json @@ -0,0 +1,16 @@ +{ + "policy-id": "guard2", + "contents": { + "recipe": "Migrate", + "actor": "SO", + "clname": "testloop", + "guardTargets": ".*", + "minGuard": "1", + "maxGuard": "2", + "limitGuard": "", + "timeUnitsGuard": "", + "timeWindowGuard": "", + "guardActiveStart": "00:00:01-05:00", + "guardActiveEnd": "23:59:01-05:00" + } +}
\ No newline at end of file diff --git a/src/test/resources/tosca/operational-policy-payload.yaml b/src/test/resources/tosca/operational-policy-payload.yaml new file mode 100644 index 000000000..68116b00b --- /dev/null +++ b/src/test/resources/tosca/operational-policy-payload.yaml @@ -0,0 +1,31 @@ +tosca_definitions_version: tosca_simple_yaml_1_0_0 +topology_template: + policies: + - testPolicy: + type: onap.policies.controlloop.Operational + version: 1.0.0 + metadata: {policy-id: testPolicy} + properties: + controlLoop: {controlLoopName: control loop, version: 2.0.0, trigger_policy: new1, + timeout: '30', abatement: 'true'} + policies: + - id: new1 + recipe: Rebuild + retry: '10' + timeout: '20' + actor: SO + payload: test + success: new2 + failure: new2 + failure_timeout: new2 + failure_retries: new2 + failure_exception: new2 + failure_guard: new2 + target: {type: VFC, resourceTargetId: test} + - id: new2 + recipe: Migrate + retry: '30' + timeout: '40' + actor: SDNC + payload: test + target: {type: VFC, resourceTargetId: test} diff --git a/src/test/resources/tosca/operational-policy-properties.json b/src/test/resources/tosca/operational-policy-properties.json new file mode 100644 index 000000000..503616593 --- /dev/null +++ b/src/test/resources/tosca/operational-policy-properties.json @@ -0,0 +1,71 @@ +{ + "guard_policies": { + "guard1":{ + "recipe": "Rebuild", + "actor": "SO", + "clname": "testloop", + "guardTargets": ".*", + "minGuard": "3", + "maxGuard": "7", + "limitGuard": "", + "timeUnitsGuard": "", + "timeWindowGuard": "", + "guardActiveStart": "00:00:01-05:00", + "guardActiveEnd": "23:59:01-05:00" + }, + "guard2":{ + "recipe": "Migrate", + "actor": "SO", + "clname": "testloop", + "guardTargets": ".*", + "minGuard": "1", + "maxGuard": "2", + "limitGuard": "", + "timeUnitsGuard": "", + "timeWindowGuard": "", + "guardActiveStart": "00:00:01-05:00", + "guardActiveEnd": "23:59:01-05:00" + } + }, + "operational_policy": { + "controlLoop": { + "controlLoopName": "control loop", + "version": "2.0.0", + "trigger_policy": "new1", + "timeout": "30", + "abatement": "true" + }, + "policies": [ + { + "id": "new1", + "recipe": "Rebuild", + "retry": "10", + "timeout": "20", + "actor": "SO", + "payload": "test", + "success": "new2", + "failure": "new2", + "failure_timeout": "new2", + "failure_retries": "new2", + "failure_exception": "new2", + "failure_guard": "new2", + "target": { + "type": "VFC", + "resourceTargetId": "test" + } + }, + { + "id": "new2", + "recipe": "Migrate", + "retry": "30", + "timeout": "40", + "actor": "SDNC", + "payload": "test", + "target": { + "type": "VFC", + "resourceTargetId": "test" + } + } + ] + } +} |