summaryrefslogtreecommitdiffstats
path: root/feature-lifecycle/src/test/java
diff options
context:
space:
mode:
authorjhh <jorge.hernandez-herrero@att.com>2020-03-05 22:32:58 -0600
committerjhh <jorge.hernandez-herrero@att.com>2020-03-10 11:29:27 -0500
commit3f563fe552e35b3bc3d95c47a3cabdfe7645ad07 (patch)
tree9439dc357096b69b670e7dad666084a5cb08dcfb /feature-lifecycle/src/test/java
parent845cbbc74445909613aff1912d3cfc9083c57d53 (diff)
policy routing and reorg into policy-domains
- Native Drools Controller Policy support. - Move domain policies into the policy-domains project. - Route legacy/compliant operational policies to one or all controller supporting the policy's policy type. - Enhancements to scripts to invoke commands external to the container. Issue-ID: POLICY-2388 Signed-off-by: jhh <jorge.hernandez-herrero@att.com> Change-Id: Id41f04d10a28d2ea86bdd41334e499c28d0438ae Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
Diffstat (limited to 'feature-lifecycle/src/test/java')
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/domain/models/DomainPolicyTypesTest.java240
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/domain/models/DroolsPolicyModelsTest.java90
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java2
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeDroolsControllerTest.java100
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeArtifactControllerTest.java (renamed from feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeRulesControllerTest.java)16
-rw-r--r--feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeDroolsControllerTest.java (renamed from feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeControllerTest.java)29
6 files changed, 129 insertions, 348 deletions
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/domain/models/DomainPolicyTypesTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/domain/models/DomainPolicyTypesTest.java
deleted file mode 100644
index dd70553d..00000000
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/domain/models/DomainPolicyTypesTest.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.drools.domain.models;
-
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import com.worldturner.medeia.api.ValidationFailedException;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.common.utils.resources.ResourceUtils;
-import org.onap.policy.drools.domain.models.controller.ControllerPolicy;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsController;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsPolicy;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsProperties;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsRulesArtifact;
-import org.onap.policy.drools.policies.DomainMaker;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
-
-public class DomainPolicyTypesTest {
-
- // Policy Types
- private static final String OPERATIONAL_DROOLS_POLICY_TYPE = "onap.policies.controlloop.operational.common.Drools";
- private static final String NATIVE_DROOLS_POLICY_TYPE = "onap.policies.native.Drools";
-
- // Operational vCPE Policy
- private static final String OP_POLICY_NAME_VCPE = "operational.restart";
- private static final String VCPE_OPERATIONAL_DROOLS_POLICY_JSON =
- "policies/vCPE.policy.operational.input.tosca.json";
- public static final String VCPE_OPERATIONAL_DROOLS_LEGACY_POLICY_JSON =
- "src/test/resources/tosca-policy-operational-restart.json";
-
- // Native Drools Policy
- private static final String EXAMPLE_NATIVE_DROOLS_POLICY_NAME = "example";
- private static final String EXAMPLE_NATIVE_DROOLS_POLICY_JSON =
- "src/test/resources/example.policy.native.drools.tosca.json";
-
- // Controller Drools Policy
- private static final String EXAMPLE_CONTROLLER_DROOLS_POLICY_NAME = "example";
- private static final String EXAMPLE_CONTROLLER_DROOLS_POLICY_JSON =
- "src/test/resources/example.policy.drools.controller.tosca.json";
-
- private DomainMaker domainMaker;
- private StandardCoder nonValCoder;
-
- @Before
- public void setUp() {
- domainMaker = new DomainMaker();
- nonValCoder = new StandardCoder();
- }
-
- @Test
- public void testToscaOperationalPolicyType() throws CoderException, IOException {
- String rawVcpeToscaPolicy = getExamplesPolicyString(VCPE_OPERATIONAL_DROOLS_POLICY_JSON, OP_POLICY_NAME_VCPE);
- String rawVcpeLegacyToscaPolicy = getJsonFromFile(VCPE_OPERATIONAL_DROOLS_LEGACY_POLICY_JSON);
-
- // valid "known" policy type with implicit schema
- assertTrue(domainMaker
- .isConformant(new ToscaPolicyTypeIdentifier(OPERATIONAL_DROOLS_POLICY_TYPE, "1.0.0"),
- rawVcpeToscaPolicy));
-
- // policy type without schema
- assertFalse(domainMaker
- .isConformant(new ToscaPolicyTypeIdentifier("blah.blah", "1.0.0"), rawVcpeToscaPolicy));
-
- // known policy type but invalid json (legacy).
- assertFalse(domainMaker
- .isConformant(new ToscaPolicyTypeIdentifier(OPERATIONAL_DROOLS_POLICY_TYPE, "1.0.0"),
- rawVcpeLegacyToscaPolicy));
-
- ToscaPolicy vcpeToscaPolicy = getExamplesPolicy(VCPE_OPERATIONAL_DROOLS_POLICY_JSON, OP_POLICY_NAME_VCPE);
- assertTrue(domainMaker.isConformant(vcpeToscaPolicy));
- assertTrue(domainMaker.conformance(vcpeToscaPolicy));
-
- // set an invalid value in the Tosca Policy (timeout less than minimum value).
- final int timeout = (int) vcpeToscaPolicy.getProperties().get("timeout");
- vcpeToscaPolicy.getProperties().put("timeout", 0);
- assertFalse(domainMaker.isConformant(vcpeToscaPolicy));
- assertThatThrownBy(() ->
- domainMaker.conformance(vcpeToscaPolicy))
- .isInstanceOf(ValidationFailedException.class)
- .hasMessageContaining("Value 0 is smaller than minimum 1");
-
- // put back the original timeout value in the Tosca Policy
- vcpeToscaPolicy.getProperties().put("timeout", timeout);
- assertTrue(domainMaker.isConformant(vcpeToscaPolicy));
- assertTrue(domainMaker.conformance(vcpeToscaPolicy));
-
- // remove required element
- final Object operations = vcpeToscaPolicy.getProperties().remove("operations");
- assertFalse(domainMaker.isConformant(vcpeToscaPolicy));
- assertThatThrownBy(() ->
- domainMaker.conformance(vcpeToscaPolicy))
- .isInstanceOf(ValidationFailedException.class)
- .hasMessageContaining("Required property operations is missing from object");
-
- // put back the original operations value in the Tosca Policy
- vcpeToscaPolicy.getProperties().put("operations", operations);
- assertTrue(domainMaker.isConformant(vcpeToscaPolicy));
- assertTrue(domainMaker.conformance(vcpeToscaPolicy));
- }
-
- @Test
- public void testToscaNativeDroolsPolicy() throws CoderException, IOException {
- String rawNativeDroolsPolicy =
- getPolicyFromFileString(EXAMPLE_NATIVE_DROOLS_POLICY_JSON, EXAMPLE_NATIVE_DROOLS_POLICY_NAME);
- ToscaPolicy toscaPolicy =
- getExamplesPolicy(EXAMPLE_NATIVE_DROOLS_POLICY_JSON, EXAMPLE_NATIVE_DROOLS_POLICY_NAME);
-
- ToscaPolicyTypeIdentifier policyTypeId =
- new ToscaPolicyTypeIdentifier(NATIVE_DROOLS_POLICY_TYPE, "1.0.0");
- domainMaker.isConformant(policyTypeId, rawNativeDroolsPolicy);
-
- assertTrue(domainMaker.isConformant(toscaPolicy));
- NativeDroolsPolicy domainDroolsPolicy = domainMaker.convertTo(toscaPolicy, NativeDroolsPolicy.class);
- assertEquals("org.onap.policy.drools.test", domainDroolsPolicy.getProperties().getRulesArtifact().getGroupId());
- assertEquals("lifecycle", domainDroolsPolicy.getProperties().getRulesArtifact().getArtifactId());
- assertEquals("1.0.0", domainDroolsPolicy.getProperties().getRulesArtifact().getVersion());
-
- String policyId = toscaPolicy.getMetadata().remove("policy-id");
- assertThatThrownBy(() -> domainMaker.convertTo(toscaPolicy, NativeDroolsPolicy.class))
- .isInstanceOf(CoderException.class).hasCauseInstanceOf(ValidationFailedException.class);
-
- toscaPolicy.getMetadata().put("policy-id", policyId);
-
- assertTrue(domainMaker.isDomainConformant(policyTypeId, domainDroolsPolicy));
- assertTrue(domainMaker.conformance(policyTypeId, domainDroolsPolicy));
-
- domainDroolsPolicy.setName("");
- assertFalse(domainMaker.isDomainConformant(policyTypeId, domainDroolsPolicy));
- assertThatThrownBy(() -> domainMaker.conformance(policyTypeId, domainDroolsPolicy))
- .isInstanceOf(ValidationFailedException.class)
- .hasMessageContaining("Pattern ^(.+)$ is not contained in text");
-
- NativeDroolsPolicy domainDroolsPolicy2 =
- NativeDroolsPolicy.builder().metadata(Metadata.builder().policyId("policy-id").build()).name("example")
- .version("1.0.0").properties(
- NativeDroolsProperties.builder().controller(
- NativeDroolsController.builder().name("example").version("1.0.0").build())
- .rulesArtifact(
- NativeDroolsRulesArtifact.builder().groupId("org.onap.policy.controlloop")
- .artifactId("example").version("example").build()).build())
- .type("onap.policies.native.Drools")
- .typeVersion("1.0.0").build();
- assertTrue(domainMaker
- .isDomainConformant(
- new ToscaPolicyTypeIdentifier(domainDroolsPolicy2.getType(), domainDroolsPolicy2.getTypeVersion()),
- domainDroolsPolicy2));
- }
-
- @Test
- public void testToscaControllerPolicy() throws CoderException {
- ToscaPolicy toscaPolicy =
- getExamplesPolicy(EXAMPLE_CONTROLLER_DROOLS_POLICY_JSON, EXAMPLE_CONTROLLER_DROOLS_POLICY_NAME);
-
- assertTrue(domainMaker.isConformant(toscaPolicy));
- ControllerPolicy controllerPolicy = domainMaker.convertTo(toscaPolicy, ControllerPolicy.class);
-
- assertEquals("example", controllerPolicy.getName());
- assertEquals("1.0.0", controllerPolicy.getVersion());
- assertEquals("onap.policies.drools.Controller", controllerPolicy.getType());
- assertEquals("1.0.0", controllerPolicy.getTypeVersion());
- assertEquals("example", controllerPolicy.getMetadata().getPolicyId());
- assertEquals("lifecycle", controllerPolicy.getProperties().getControllerName());
- assertEquals("DCAE_TOPIC", controllerPolicy.getProperties().getSourceTopics().get(0).getTopicName());
- assertEquals("org.onap.policy.controlloop.CanonicalOnset",
- controllerPolicy.getProperties().getSourceTopics().get(0).getSerialization().get(0).getEventClass());
- assertEquals("[?($.closedLoopEventStatus == 'ONSET')]",
- controllerPolicy.getProperties().getSourceTopics().get(0).getSerialization().get(0).getEventFilter());
- assertEquals("org.onap.policy.controlloop.util.Serialization",
- controllerPolicy.getProperties().getSourceTopics().get(0).getSerialization().get(0)
- .getCustomSerializer().getCustomSerializerClass());
- assertEquals("gson",
- controllerPolicy.getProperties().getSourceTopics().get(0).getSerialization().get(0)
- .getCustomSerializer().getJsonParser());
- assertEquals("APPC-CL", controllerPolicy.getProperties().getSinkTopics().get(0).getTopicName());
- assertEquals("org.onap.policy.appc.Response",
- controllerPolicy.getProperties().getSinkTopics().get(0).getSerialization().get(0).getEventClass());
- assertEquals("[?($.CommonHeader && $.Status)]",
- controllerPolicy.getProperties().getSinkTopics().get(0).getSerialization().get(0).getEventFilter());
- assertEquals("org.onap.policy.appc.util.Serialization",
- controllerPolicy.getProperties().getSinkTopics().get(0).getSerialization().get(0)
- .getCustomSerializer().getCustomSerializerClass());
- assertEquals("gsonPretty",
- controllerPolicy.getProperties().getSinkTopics().get(0).getSerialization().get(0)
- .getCustomSerializer().getJsonParser());
- assertEquals("value1", controllerPolicy.getProperties().getCustomConfig().get("field1"));
- }
-
- private String getJsonFromFile(String filePath) throws IOException {
- return new String(Files.readAllBytes(Paths.get(filePath)));
- }
-
- private String getJsonFromResource(String resourcePath) {
- return ResourceUtils.getResourceAsString(resourcePath);
- }
-
- private String getPolicyFromFileString(String filePath, String policyName) throws CoderException, IOException {
- String policyJson = getJsonFromFile(filePath);
- ToscaServiceTemplate serviceTemplate = new StandardCoder().decode(policyJson, ToscaServiceTemplate.class);
- return nonValCoder.encode(serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get(policyName));
- }
-
- private ToscaPolicy getExamplesPolicy(String resourcePath, String policyName) throws CoderException {
- String policyJson = getJsonFromResource(resourcePath);
- ToscaServiceTemplate serviceTemplate = new StandardCoder().decode(policyJson, ToscaServiceTemplate.class);
- return serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get(policyName);
- }
-
- private String getExamplesPolicyString(String resourcePath, String policyName) throws CoderException {
- return nonValCoder.encode(getExamplesPolicy(resourcePath, policyName));
- }
-} \ No newline at end of file
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/domain/models/DroolsPolicyModelsTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/domain/models/DroolsPolicyModelsTest.java
deleted file mode 100644
index d99dd089..00000000
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/domain/models/DroolsPolicyModelsTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2020 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.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.drools.domain.models;
-
-import static org.junit.Assert.assertNotNull;
-
-import com.openpojo.reflection.PojoClass;
-import com.openpojo.reflection.filters.FilterChain;
-import com.openpojo.reflection.filters.FilterClassName;
-import com.openpojo.reflection.filters.FilterNonConcrete;
-import com.openpojo.reflection.impl.PojoClassFactory;
-import com.openpojo.validation.Validator;
-import com.openpojo.validation.ValidatorBuilder;
-import com.openpojo.validation.test.impl.GetterTester;
-import com.openpojo.validation.test.impl.SetterTester;
-import java.util.ArrayList;
-import java.util.List;
-import org.junit.Test;
-import org.onap.policy.drools.domain.models.controller.ControllerPolicy;
-import org.onap.policy.drools.domain.models.controller.ControllerProperties;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsController;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsPolicy;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsProperties;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsRulesArtifact;
-
-public class DroolsPolicyModelsTest {
-
- @Test
- public void testPackage() {
- /* validate model pojos */
- List<PojoClass> pojoClasses =
- PojoClassFactory
- .getPojoClassesRecursively("org.onap.policy.drools.domain.models",
- new FilterChain(new FilterNonConcrete(),
- new FilterClassName(DroolsPolicy.class.getName())));
-
- Validator validator = ValidatorBuilder.create()
- .with(new SetterTester(), new GetterTester()).build();
- validator.validate(pojoClasses);
- }
-
- @Test
- public void testBuildDomainPolicyNativeDrools() {
- /* manually create a native drools policy */
- assertNotNull(NativeDroolsPolicy.builder().metadata(Metadata.builder().policyId("policy-id").build())
- .name("example")
- .type("onap.policies.native.Drools")
- .typeVersion("1.0.0")
- .version("1.0.0")
- .properties(
- NativeDroolsProperties.builder().controller(
- NativeDroolsController.builder().name("example").version("1.0.0").build())
- .rulesArtifact(
- NativeDroolsRulesArtifact.builder().groupId("org.onap.policy.controlloop")
- .artifactId("example").version("example").build()).build())
- .build());
- }
-
- @Test
- public void testBuildDomainPolicyController() {
- /* manually create a controller policy */
- assertNotNull(ControllerPolicy.builder().metadata(Metadata.builder().policyId("policy-id").build())
- .name("example")
- .version("1.0.0")
- .type("onap.policies.drools.Controller")
- .typeVersion("1.0.0")
- .properties(ControllerProperties.builder().controllerName("example").sourceTopics(
- new ArrayList<>()).sinkTopics(new ArrayList<>()).build())
- .build());
- }
-
-} \ No newline at end of file
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java
index b42e0fb6..219aa0fb 100644
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java
@@ -77,7 +77,7 @@ public class LifecycleStatePassiveTest extends LifecycleStateRunningTest {
((PolicyTypeDroolsController) fsm.getController(
new ToscaPolicyTypeIdentifier(
ControllerSupport.POLICY_TYPE, ControllerSupport.POLICY_TYPE_VERSION)))
- .getController());
+ .controllers().get(0));
fsm.stop(controllerSupport.getController());
assertNull(fsm.getController(new ToscaPolicyTypeIdentifier(ControllerSupport.POLICY_TYPE,
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeDroolsControllerTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeDroolsControllerTest.java
new file mode 100644
index 00000000..a56e250b
--- /dev/null
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeDroolsControllerTest.java
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2020 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.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * =============LICENSE_END========================================================
+ */
+
+package org.onap.policy.drools.lifecycle;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
+import org.onap.policy.common.utils.resources.ResourceUtils;
+import org.onap.policy.drools.domain.models.operational.OperationalPolicy;
+import org.onap.policy.drools.system.PolicyControllerConstants;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+
+/**
+ * Drools Controller Policy Test.
+ */
+public class PolicyTypeDroolsControllerTest extends LifecycleStateRunningTest {
+
+ // Operational vCPE Policies
+ private static final String OP_POLICY_NAME_VCPE = "operational.restart";
+ private static final String VCPE_OPERATIONAL_DROOLS_POLICY_JSON =
+ "policies/vCPE.policy.operational.input.tosca.json";
+
+ private ToscaPolicy policy;
+ private OperationalPolicy operationalPolicy;
+ private PolicyTypeDroolsController controller;
+
+ /**
+ * Test initialization.
+ */
+ @Before
+ public void init() throws CoderException {
+ fsm = makeFsmWithPseudoTime();
+ policy = getExamplesPolicy(VCPE_OPERATIONAL_DROOLS_POLICY_JSON, OP_POLICY_NAME_VCPE);
+ operationalPolicy = fsm.getDomainMaker().convertTo(policy, OperationalPolicy.class);
+ controller = new PolicyTypeDroolsController(
+ fsm, PolicyTypeDroolsController.compliantType, controllerSupport.getController());
+
+ assertTrue(controllerSupport.getController().getDrools().isBrained());
+ assertFalse(controllerSupport.getController().isAlive());
+ assertFalse(controllerSupport.getController().getDrools().isAlive());
+ assertSame(controllerSupport.getController(), PolicyControllerConstants.getFactory().get("lifecycle"));
+
+ /* start controller */
+ assertTrue(controllerSupport.getController().start());
+
+ assertTrue(controllerSupport.getController().isAlive());
+ assertTrue(controllerSupport.getController().getDrools().isAlive());
+ assertTrue(controllerSupport.getController().getDrools().isBrained());
+ assertSame(controllerSupport.getController(), PolicyControllerConstants.getFactory().get("lifecycle"));
+ }
+
+ @Test
+ public void testDeployUndeploy() {
+ /* non-existing controller */
+ assertFalse(controller.undeploy(policy));
+ assertFalse(controller.deploy(policy));
+
+ policy.getProperties().remove("controllerName");
+ assertTrue(controller.deploy(policy));
+ assertTrue(controller.undeploy(policy));
+ assertFalse(controller.undeploy(policy));
+
+ /* existing controller */
+ policy.getProperties().put("controllerName", "lifecycle");
+ assertTrue(controller.deploy(policy));
+ assertTrue(controller.undeploy(policy));
+ assertFalse(controller.undeploy(policy));
+ }
+
+ private ToscaPolicy getExamplesPolicy(String resourcePath, String policyName) throws CoderException {
+ String policyJson = ResourceUtils.getResourceAsString(resourcePath);
+ ToscaServiceTemplate serviceTemplate = new StandardCoder().decode(policyJson, ToscaServiceTemplate.class);
+ return serviceTemplate.getToscaTopologyTemplate().getPolicies().get(0).get(policyName);
+ }
+
+} \ No newline at end of file
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeRulesControllerTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeArtifactControllerTest.java
index 369284dc..cb55e637 100644
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeRulesControllerTest.java
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeArtifactControllerTest.java
@@ -33,7 +33,7 @@ import org.onap.policy.common.utils.coder.CoderException;
import org.onap.policy.drools.controller.DroolsControllerConstants;
import org.onap.policy.drools.controller.internal.MavenDroolsController;
import org.onap.policy.drools.controller.internal.NullDroolsController;
-import org.onap.policy.drools.domain.models.nativ.rules.NativeDroolsPolicy;
+import org.onap.policy.drools.domain.models.artifact.NativeArtifactPolicy;
import org.onap.policy.drools.system.PolicyControllerConstants;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
@@ -41,15 +41,15 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifi
/**
* Rules Controller Test.
*/
-public class PolicyTypeRulesControllerTest extends LifecycleStateRunningTest {
+public class PolicyTypeNativeArtifactControllerTest extends LifecycleStateRunningTest {
// Native Drools Policy
private static final String EXAMPLE_NATIVE_DROOLS_POLICY_NAME = "example";
private static final String EXAMPLE_NATIVE_DROOLS_POLICY_JSON =
- "src/test/resources/example.policy.native.drools.tosca.json";
+ "src/test/resources/tosca-policy-native-artifact-example.json";
private ToscaPolicy policy;
- private NativeDroolsPolicy nativePolicy;
- private PolicyTypeRulesController controller;
+ private NativeArtifactPolicy nativePolicy;
+ private PolicyTypeNativeArtifactController controller;
/**
* Test Set initialization.
@@ -58,10 +58,10 @@ public class PolicyTypeRulesControllerTest extends LifecycleStateRunningTest {
public void init() throws IOException, CoderException {
fsm = makeFsmWithPseudoTime();
policy = getPolicyFromFile(EXAMPLE_NATIVE_DROOLS_POLICY_JSON, EXAMPLE_NATIVE_DROOLS_POLICY_NAME);
- nativePolicy = fsm.getDomainMaker().convertTo(policy, NativeDroolsPolicy.class);
+ nativePolicy = fsm.getDomainMaker().convertTo(policy, NativeArtifactPolicy.class);
controller =
- new PolicyTypeRulesController(fsm,
- new ToscaPolicyTypeIdentifier("onap.policies.native.Drools", "1.0.0"));
+ new PolicyTypeNativeArtifactController(fsm,
+ new ToscaPolicyTypeIdentifier("onap.policies.native.drools.Artifact", "1.0.0"));
assertTrue(controllerSupport.getController().getDrools().isBrained());
assertFalse(controllerSupport.getController().isAlive());
diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeControllerTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeDroolsControllerTest.java
index 528fa7ef..1aa3a684 100644
--- a/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeControllerTest.java
+++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/PolicyTypeNativeDroolsControllerTest.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020 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.
@@ -26,26 +26,28 @@ import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
+import java.util.Properties;
import org.junit.Before;
import org.junit.Test;
+import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager;
+import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties;
import org.onap.policy.common.utils.coder.CoderException;
import org.onap.policy.drools.domain.models.controller.ControllerPolicy;
import org.onap.policy.drools.system.PolicyControllerConstants;
import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
/**
* Native Controller Policy Test.
*/
-public class PolicyTypeNativeControllerTest extends LifecycleStateRunningTest {
+public class PolicyTypeNativeDroolsControllerTest extends LifecycleStateRunningTest {
// Native Drools Policy
private static final String EXAMPLE_NATIVE_DROOLS_POLICY_NAME = "example";
private static final String EXAMPLE_NATIVE_DROOLS_POLICY_JSON =
- "src/test/resources/example.policy.drools.controller.tosca.json";
+ "src/test/resources/tosca-policy-native-controller-example.json";
private ToscaPolicy policy;
private ControllerPolicy controllerPolicy;
- private PolicyTypeNativeController controller;
+ private PolicyTypeNativeDroolsController controller;
/**
* Test initialization.
@@ -55,9 +57,7 @@ public class PolicyTypeNativeControllerTest extends LifecycleStateRunningTest {
fsm = makeFsmWithPseudoTime();
policy = getPolicyFromFile(EXAMPLE_NATIVE_DROOLS_POLICY_JSON, EXAMPLE_NATIVE_DROOLS_POLICY_NAME);
controllerPolicy = fsm.getDomainMaker().convertTo(policy, ControllerPolicy.class);
- controller =
- new PolicyTypeNativeController(fsm,
- new ToscaPolicyTypeIdentifier("onap.policies.drools.Controller", "1.0.0"));
+ controller = new PolicyTypeNativeDroolsController(fsm, policy.getTypeIdentifier());
assertTrue(controllerSupport.getController().getDrools().isBrained());
assertFalse(controllerSupport.getController().isAlive());
@@ -74,9 +74,20 @@ public class PolicyTypeNativeControllerTest extends LifecycleStateRunningTest {
}
@Test
- public void testUndeploy() {
+ public void testUndeployDeploy() {
assertTrue(controller.undeploy(policy));
assertThatIllegalArgumentException().isThrownBy(
() -> PolicyControllerConstants.getFactory().get(controllerPolicy.getName()));
+
+ assertFalse(controller.deploy(policy));
+
+ Properties noopTopicProperties = new Properties();
+ noopTopicProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SOURCE_TOPICS, "DCAE_TOPIC");
+ noopTopicProperties.put(PolicyEndPointProperties.PROPERTY_NOOP_SINK_TOPICS, "APPC-CL");
+ TopicEndpointManager.getManager().addTopics(noopTopicProperties);
+
+ controller.deploy(policy);
+
+ return;
}
} \ No newline at end of file