aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/onap/clamp/clds/AbstractIT.java25
-rw-r--r--src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java87
-rw-r--r--src/test/java/org/onap/clamp/clds/it/AsdcIT.java56
-rw-r--r--src/test/java/org/onap/clamp/clds/it/DcaeIT.java58
-rw-r--r--src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java171
-rw-r--r--src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java446
-rw-r--r--src/test/java/org/onap/clamp/clds/it/RefPropIT.java61
-rw-r--r--src/test/java/org/onap/clamp/clds/model/CldsModelTest.java53
-rw-r--r--src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java73
9 files changed, 1030 insertions, 0 deletions
diff --git a/src/test/java/org/onap/clamp/clds/AbstractIT.java b/src/test/java/org/onap/clamp/clds/AbstractIT.java
new file mode 100644
index 000000000..873c852ad
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/AbstractIT.java
@@ -0,0 +1,25 @@
+package org.onap.clamp.clds;
+
+import org.junit.BeforeClass;
+import org.onap.clamp.clds.client.PolicyClient;
+import org.onap.clamp.clds.model.refprop.RefProp;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ActiveProfiles;
+
+/**
+ * Created by j on 6/16/17.
+ */
+@ActiveProfiles("clamp-default")
+public abstract class AbstractIT {
+
+ @Autowired
+ protected RefProp refProp;
+ @Autowired
+ protected PolicyClient policyClient;
+
+ @BeforeClass
+ public static void oneTimeSetUp() {
+ System.setProperty("AJSC_CONF_HOME", System.getProperty("user.dir") + "/src/it/resources/");
+ System.setProperty("CLDS_DCAE_URL", "http://localhost:13786/cl-dcae-services");
+ }
+}
diff --git a/src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java b/src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java
new file mode 100644
index 000000000..f4d693fe6
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/client/req/SdcReqTest.java
@@ -0,0 +1,87 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.client.req;
+
+import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.junit.Assert;
+import org.junit.Test;
+import org.onap.clamp.clds.client.SdcCatalogServices;
+import org.onap.clamp.clds.model.CldsAsdcResource;
+import org.onap.clamp.clds.model.CldsAsdcServiceDetail;
+import org.onap.clamp.clds.model.prop.Global;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * Created by Julien Bertozzi on 6/20/17.
+ */
+public class SdcReqTest {
+
+ String baseUrl = "AYBABTU";
+ String serviceInvariantUUID = "serviceInvariantUUID";
+
+ @Test
+ public void getAsdcReqUrlsListNoGlobalPropTest() throws Exception {
+ ModelProperties prop = mock(ModelProperties.class);
+ SdcCatalogServices sdcCatalogServices = mock(SdcCatalogServices.class);
+ DelegateExecution delegateExecution = mock(DelegateExecution.class);
+ Global global = mock(Global.class);
+ CldsAsdcServiceDetail cldsAsdcServiceDetail = mock(CldsAsdcServiceDetail.class);
+ CldsAsdcResource cldsAsdcResource = mock(CldsAsdcResource.class);
+ List<CldsAsdcResource> cldsAsdcResources = new ArrayList<>();
+ cldsAsdcResources.add(cldsAsdcResource);
+ List<String> resourceVf = new ArrayList<>();
+ resourceVf.add(serviceInvariantUUID);
+
+ Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+
+ when(prop.getGlobal()).thenReturn(global);
+ Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+
+ when(global.getService()).thenReturn(serviceInvariantUUID);
+ Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+
+ when(sdcCatalogServices.getCldsAsdcServiceDetailFromJson(null)).thenReturn(cldsAsdcServiceDetail);
+ when(global.getResourceVf()).thenReturn(new ArrayList<>());
+ Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+
+ when(cldsAsdcServiceDetail.getResources()).thenReturn(cldsAsdcResources);
+ Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+
+ when(cldsAsdcResource.getResoucreType()).thenReturn("VF");
+ Assert.assertTrue(SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution).isEmpty());
+
+ when(global.getResourceVf()).thenReturn(resourceVf);
+ when(cldsAsdcResource.getResourceInvariantUUID()).thenReturn(serviceInvariantUUID);
+ when(cldsAsdcResource.getResourceInstanceName()).thenReturn("Resource instance name");
+ List<String> expected = new ArrayList<>();
+ expected.add("AYBABTU/null/resourceInstances/resourceinstancename/artifacts");
+ Assert.assertEquals(expected, SdcReq.getAsdcReqUrlsList(prop, baseUrl, sdcCatalogServices, delegateExecution));
+ }
+}
diff --git a/src/test/java/org/onap/clamp/clds/it/AsdcIT.java b/src/test/java/org/onap/clamp/clds/it/AsdcIT.java
new file mode 100644
index 000000000..d616b7e2e
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/AsdcIT.java
@@ -0,0 +1,56 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.client.req.SdcReq;
+import org.onap.clamp.clds.model.CldsEvent;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.transform.TransformUtil;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE Delegates in test.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class AsdcIT extends AbstractIT {
+
+ @Test
+ public void testBlueprint() throws Exception {
+ String modelProp = TransformUtil.getResourceAsString("example/modelProp.json");
+ String modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnProp.json");
+ String modelName = "example-model06";
+ String controlName = "ClosedLoop-FRWL-SIG04-1582f840-test-test-1234-005056a9d756";
+ String docText = TransformUtil.getResourceAsString("example/templateProp.json");
+ ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, modelBpmnProp, modelProp);
+ String blueprint = SdcReq.formatBlueprint(refProp, prop, docText);
+ System.out.println("blueprint=" + blueprint);
+ }
+
+}
diff --git a/src/test/java/org/onap/clamp/clds/it/DcaeIT.java b/src/test/java/org/onap/clamp/clds/it/DcaeIT.java
new file mode 100644
index 000000000..aef4c64f6
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/DcaeIT.java
@@ -0,0 +1,58 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.client.req.DcaeReq;
+import org.onap.clamp.clds.model.CldsEvent;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.onap.clamp.clds.transform.TransformUtil;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * Test DCAE API in org.onap.clamp.ClampDesigner.client package - replicate DCAE Delegates in test.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+public class DcaeIT extends AbstractIT {
+
+ @Test
+ public void testDcaeReq() throws Exception {
+ String modelProp = TransformUtil.getResourceAsString("example/modelProp.json");
+ String modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnProp.json");
+ String modelName = "example-model";
+ String controlName = "ClosedLoop-FRWL-SIG-1582f840-2881-11e6-b4ec-005056a9d756";
+
+ ModelProperties prop = new ModelProperties(modelName, controlName, CldsEvent.ACTION_SUBMIT, modelBpmnProp, modelProp);
+ String dcaeReq = DcaeReq.format(refProp, prop);
+
+ System.out.println("dcaeReq=" + dcaeReq);
+ System.out.println("dcaeUrl=" + System.getProperty("CLDS_DCAE_URL") + "/" + controlName);
+ }
+
+}
diff --git a/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java b/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java
new file mode 100644
index 000000000..61ee1850d
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/PolicyClientIT.java
@@ -0,0 +1,171 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.model.CldsEvent;
+import org.onap.clamp.clds.model.prop.ModelProperties;
+import org.openecomp.policy.api.AttributeType;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.onap.clamp.clds.client.req.OperationalPolicyReq;
+import org.onap.clamp.clds.client.req.StringMatchPolicyReq;
+import org.onap.clamp.clds.model.prop.Policy;
+import org.onap.clamp.clds.model.prop.StringMatch;
+import org.onap.clamp.clds.transform.TransformUtil;
+
+/**
+ * Test Policy API in org.onap.clamp.ClampDesigner.client package - replicate
+ * Policy Delegates in tests.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+public class PolicyClientIT extends AbstractIT {
+ String modelProp;
+ String modelBpmnProp;
+ String modelName;
+ String controlName;
+
+ @Before
+ public void setUp() throws IOException {
+ modelProp = TransformUtil.getResourceAsString("example/modelProp.json");
+ modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnProp.json");
+ modelName = "example-model06";
+ controlName = "ClosedLoop_FRWL_SIG_fad4dcae_e498_11e6_852e_0050568c4ccf";
+ }
+
+ private void createUpdateStringMatch(String actionCd) throws Exception {
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, modelBpmnProp, modelProp);
+ String stringMatchPolicyRequestUuid = UUID.randomUUID().toString();
+ String policyJson = StringMatchPolicyReq.format(refProp, prop);
+ System.out.println("String Match policyJson=" + policyJson);
+ String responseMessage = policyClient.sendMicroService(policyJson, prop, stringMatchPolicyRequestUuid);
+ System.out.println(responseMessage);
+ }
+
+ private void createUpdateOperationalPolicy(String actionCd) throws Exception {
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, modelBpmnProp, modelProp);
+ String operationalPolicyRequestUuid = UUID.randomUUID().toString();
+ Map<AttributeType, Map<String, String>> attributes = OperationalPolicyReq.formatAttributes(refProp, prop);
+ String responseMessage = policyClient.sendBrms(attributes, prop, operationalPolicyRequestUuid);
+ System.out.println(responseMessage);
+ }
+
+ private void createUpdatePolicies(String actionCd) throws Exception {
+ createUpdateStringMatch(actionCd);
+ createUpdateOperationalPolicy(actionCd);
+ }
+
+ private void deleteStringMatchPolicy(String actionCd) throws Exception {
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, modelBpmnProp, modelProp);
+ StringMatch stringMatch = prop.getStringMatch();
+ prop.setCurrentModelElementId(stringMatch.getId());
+ String responseMessage = policyClient.deleteMicrosService(prop);
+ System.out.println(responseMessage);
+ }
+
+ private void deleteOperationalPolicy(String actionCd) throws Exception {
+ ModelProperties prop = new ModelProperties(modelName, controlName, actionCd, modelBpmnProp, modelProp);
+ Policy policy = prop.getPolicy();
+ prop.setCurrentModelElementId(policy.getId());
+ String responseMessage = policyClient.deleteBrms(prop);
+ System.out.println(responseMessage);
+ }
+
+ private void deletePolicies(String actionCd) throws Exception {
+ deleteStringMatchPolicy(actionCd);
+ deleteOperationalPolicy(actionCd);
+ }
+
+ /**
+ * Delete policies so we can start with a clean state. But this is just a
+ * precaution - the policies might not already exists. So ignore errors in
+ * attempting to do this.
+ *
+ * @param actionCd
+ */
+ private void cleanUpPolicies(String actionCd) {
+ try {
+ deleteStringMatchPolicy(actionCd);
+ } catch (Exception e) {
+ System.err.println(
+ "TestPolicyClient: The following error is ok - attempting delete in case the policy exists - the goal is to start with clean slate");
+ }
+ try {
+ deleteOperationalPolicy(actionCd);
+ } catch (Exception e) {
+ System.err.println(
+ "TestPolicyClient: The following error is ok - attempting delete in case the policy exists - the goal is to start with clean slate");
+ }
+ }
+
+ @Test
+ public void testCreateUpdateDeletePolicy() throws Exception {
+
+ cleanUpPolicies(CldsEvent.ACTION_DELETE);
+ TimeUnit.SECONDS.sleep(5);
+ System.out.println("entered into update");
+ String actionCd;
+
+ try {
+ actionCd = CldsEvent.ACTION_SUBMIT;
+ createUpdatePolicies(actionCd);
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Policy send failed: PE500 "));
+ }
+
+ try {
+ actionCd = CldsEvent.ACTION_RESUBMIT;
+ createUpdatePolicies(actionCd);
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Policy send failed: PE500 "));
+ }
+
+ try {
+ actionCd = CldsEvent.ACTION_RESUBMIT;
+ createUpdatePolicies(actionCd);
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Policy send failed: PE500 "));
+ }
+
+ try {
+ TimeUnit.SECONDS.sleep(20);
+ deletePolicies(CldsEvent.ACTION_DELETE);
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Unable to get valid Response from PDP"));
+ }
+
+ }
+}
diff --git a/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java b/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java
new file mode 100644
index 000000000..7eeb04eb8
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/PropJsonBuilderIT.java
@@ -0,0 +1,446 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.onap.clamp.clds.AbstractIT;
+import org.onap.clamp.clds.client.req.SdcReq;
+import org.onap.clamp.clds.model.CldsAsdcServiceDetail;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.io.IOException;
+
+/**
+ * Test ASDC API - stand alone (except for some config).
+ * Replicates getAsdcServices and getAsdcServicesByUUID in the CldsService
+ * Adds test of putting putting an artifact to VF.
+ * TODO Also needs update and perhaps delete tests.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+public class PropJsonBuilderIT extends AbstractIT {
+
+ private String globalPropsPartial;
+ private ObjectMapper mapper;
+
+ @Before
+ public void setUp() throws IOException {
+ String url = refProp.getStringValue("asdc.serviceUrl");
+ String catalogUrl = refProp.getStringValue("asdc.catalog.url");
+ String basicAuth = SdcReq.getAsdcBasicAuth(refProp);
+ System.out.println("value of string and basicAuth:" + url + basicAuth);
+ CldsAsdcServiceDetail cldsservicedetail = new CldsAsdcServiceDetail();
+ // cldsservicedetail.set
+ String globalProps = refProp.getStringValue("globalPropsTest");
+ globalPropsPartial = refProp.getStringValue("globalPropsPartialTest");
+ mapper = new ObjectMapper();
+ }
+
+ /**
+ * List services from ASDC.
+ * List meta data for a particular service from ASDC.
+ * Test uploading artifact to a VF in ASDC.
+ */
+ @Test
+ public void testAsdc() throws Exception {
+// String createEmptySharedObject = createEmptySharedObject();
+// System.out.println("value of emptySharedObject:" + createEmptySharedObject);
+ sampleJsonObject();
+ System.out.println(createTestEmptySharedObject());
+ }
+
+ private void sampleJsonObject() throws JsonProcessingException {
+ ArrayNode arrayNode = mapper.createArrayNode();
+
+ /**
+ * Create three JSON Objects objectNode1, objectNode2, objectNode3
+ * Add all these three objects in the array
+ */
+
+ ObjectNode objectNode1 = mapper.createObjectNode();
+ objectNode1.put("bookName", "Java");
+ objectNode1.put("price", "100");
+
+ ObjectNode objectNode2 = mapper.createObjectNode();
+ objectNode2.put("bookName", "Spring");
+ objectNode2.put("price", "200");
+
+ ObjectNode objectNode3 = mapper.createObjectNode();
+ objectNode3.put("bookName", "Liferay");
+ objectNode3.put("price", "500");
+
+ /**
+ * Array contains JSON Objects
+ */
+ arrayNode.add(objectNode1);
+ arrayNode.add(objectNode2);
+ arrayNode.add(objectNode3);
+
+ /**
+ * We can directly write the JSON in the console.
+ * But it wont be pretty JSON String
+ */
+ System.out.println(arrayNode.toString());
+
+ /**
+ * To make the JSON String pretty use the below code
+ */
+ System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(arrayNode));
+ }
+
+ private String createEmptySharedObject() throws JsonProcessingException {
+
+ /**
+ * "": {
+ "vf": {
+ "": ""
+ },
+ "location": {
+ "": ""
+ },
+ "alarmCondition": {
+ "": ""
+ }
+ }
+ */
+ ObjectNode emptyObjectNode = mapper.createObjectNode();
+ emptyObjectNode.put("", "");
+ ObjectNode vfObjectNode = mapper.createObjectNode();
+ vfObjectNode.putPOJO("vf", emptyObjectNode);
+ ObjectNode locationObjectNode = mapper.createObjectNode();
+ locationObjectNode.putPOJO("location", emptyObjectNode);
+ ObjectNode alarmConditionObjectNode = mapper.createObjectNode();
+ alarmConditionObjectNode.putPOJO("alarmCondition", emptyObjectNode);
+ ObjectNode emptyServiceObjectNode = mapper.createObjectNode();
+ ArrayNode samArrayNode = mapper.createArrayNode();
+ samArrayNode.add(vfObjectNode);
+ samArrayNode.add(locationObjectNode);
+ samArrayNode.add(alarmConditionObjectNode);
+ emptyServiceObjectNode.putPOJO("", samArrayNode);
+
+ /**
+ * "vf": {
+ * " ": " ",
+ * "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3"
+ * }
+ *
+ */
+ ObjectNode vfObjectNode2 = mapper.createObjectNode();
+ ObjectNode dcaeClampDemo3Node = mapper.createObjectNode();
+ dcaeClampDemo3Node.put("DCAE_CLAMP_DEMO3", "DCAE_CLAMP_DEMO3");
+ ArrayNode vfArrayNode = mapper.createArrayNode();
+ vfArrayNode.add(emptyObjectNode);
+ vfArrayNode.add(dcaeClampDemo3Node);
+ vfObjectNode2.putPOJO("vf", vfArrayNode);
+
+ /**
+ * "location": {
+ "SNDGCA64": "San Diego SAN3",
+ "ALPRGAED": "Alpharetta PDK1",
+ "LSLEILAA": "Lisle DPA3"
+ },
+ */
+ ObjectNode locationObjectNode2 = mapper.createObjectNode();
+ ObjectNode sandiegoLocationNode = mapper.createObjectNode();
+ sandiegoLocationNode.put("SNDGCA64", "San Diego SAN3");
+ ObjectNode alpharettaNode = mapper.createObjectNode();
+ alpharettaNode.put("ALPRGAED", "Alpharetta PDK1");
+ ArrayNode locationArrayNode = mapper.createArrayNode();
+ locationArrayNode.add(emptyObjectNode);
+ locationArrayNode.add(sandiegoLocationNode);
+ locationArrayNode.add(alpharettaNode);
+ locationObjectNode2.putPOJO("location", locationArrayNode);
+
+ /**
+ * "alarmCondition": {
+ "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation will soon be started",
+ "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+ */
+ ObjectNode alarmConditionObjectNode2 = mapper.createObjectNode();
+ ObjectNode alamrCondition1 = mapper.createObjectNode();
+ alamrCondition1.put("A+Fallback+Operation+will+soon+be+started", "A Fallback Operation will soon be started");
+ ObjectNode alarmConditon2 = mapper.createObjectNode();
+ alarmConditon2.put("BRM%2C+Scheduled+Backup+Failed", "BRM, Scheduled Backup Failed");
+ ArrayNode alarmArrayNode = mapper.createArrayNode();
+ alarmArrayNode.add(emptyObjectNode);
+ alarmArrayNode.add(alamrCondition1);
+ alarmArrayNode.add(alarmConditon2);
+ alarmConditionObjectNode2.putPOJO("alarmCondition", alarmArrayNode);
+
+ ArrayNode byServiceIdArrayNode = mapper.createArrayNode();
+ byServiceIdArrayNode.add(vfObjectNode2);
+ byServiceIdArrayNode.add(locationObjectNode2);
+ byServiceIdArrayNode.add(alarmConditionObjectNode2);
+
+ ObjectNode byServiceIdNode = mapper.createObjectNode();
+ byServiceIdNode.putPOJO("c989a551-69f7-4b30-b10a-2e85bb227c30", byServiceIdArrayNode);
+
+ ArrayNode byServiceBasicArrayNode = mapper.createArrayNode();
+ byServiceBasicArrayNode.add(emptyServiceObjectNode);
+ byServiceBasicArrayNode.add(byServiceIdNode);
+
+ ObjectNode byServiceBasicObjetNode = mapper.createObjectNode();
+
+ byServiceBasicObjetNode.putPOJO("byService", byServiceBasicArrayNode);
+
+ /**
+ * "byVf": {
+ "": {
+ "vfc": {
+ "": ""
+ },
+ "03596c12-c7e3-44b7-8994-5cdfeda8afdd": {
+ "vfc": {
+ " ": " "
+ }
+ }
+ }
+ }
+ */
+
+ ObjectNode byVfCBasicNode = mapper.createObjectNode();
+ ObjectNode emptyvfcobjectNode = mapper.createObjectNode();
+ ObjectNode vfCObjectNode = mapper.createObjectNode();
+ vfCObjectNode.putPOJO("vfC", emptyObjectNode);
+ ObjectNode vfcIdObjectNode = mapper.createObjectNode();
+ vfcIdObjectNode.putPOJO("03596c12-c7e3-44b7-8994-5cdfeda8afdd", vfCObjectNode);
+ ArrayNode emptyvfcArrayNode = mapper.createArrayNode();
+ emptyvfcArrayNode.add(vfCObjectNode);
+ emptyvfcArrayNode.add(vfcIdObjectNode);
+ emptyvfcobjectNode.putPOJO("", emptyvfcArrayNode);
+
+ byVfCBasicNode.putPOJO("byVf", emptyvfcobjectNode);
+
+ ArrayNode finalSharedArrayObject = mapper.createArrayNode();
+
+ finalSharedArrayObject.add(byServiceBasicObjetNode);
+ finalSharedArrayObject.add(byVfCBasicNode);
+
+ ObjectNode finalSharedObjectNode = mapper.createObjectNode();
+ finalSharedObjectNode.putPOJO("shared", finalSharedArrayObject);
+
+ System.out.println("value :" + finalSharedObjectNode.toString());
+ String testFinal = finalSharedObjectNode.toString();
+ testFinal = testFinal.replaceFirst("\\{", ",");
+ return globalPropsPartial + testFinal;
+ }
+
+ private String createTestEmptySharedObject() throws IOException {
+ String locationStringValue = refProp.getStringValue("ui.location.default");
+ String alarmStringValue = refProp.getStringValue("ui.alarm.default");
+
+ ObjectNode locationJsonNode = (ObjectNode) mapper.readValue(locationStringValue, JsonNode.class);
+ ObjectNode alarmStringJsonNode = (ObjectNode) mapper.readValue(alarmStringValue, JsonNode.class);
+ /**
+ * "": {
+ "vf": {
+ "": ""
+ },
+ "location": {
+ "": ""
+ },
+ "alarmCondition": {
+ "": ""
+ }
+ }
+ */
+ ObjectNode emptyObjectNode = mapper.createObjectNode();
+ emptyObjectNode.put("", "");
+ ObjectNode vfObjectNode = mapper.createObjectNode();
+ vfObjectNode.putPOJO("vf", emptyObjectNode);
+ vfObjectNode.putPOJO("location", emptyObjectNode);
+ vfObjectNode.putPOJO("alarmCondition", emptyObjectNode);
+ ObjectNode emptyServiceObjectNode = mapper.createObjectNode();
+ emptyServiceObjectNode.putPOJO("", vfObjectNode);
+
+ /**
+ * "vf": {
+ * " ": " ",
+ * "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3"
+ * }
+ *
+ */
+ ObjectNode vfObjectNode2 = mapper.createObjectNode();
+ ObjectNode dcaeClampDemo3Node = mapper.createObjectNode();
+ dcaeClampDemo3Node.put("", "");
+ dcaeClampDemo3Node.put("DCAE_CLAMP_DEMO3", "DCAE_CLAMP_DEMO3");
+ vfObjectNode2.putPOJO("vf", dcaeClampDemo3Node);
+
+ /**
+ * "location": {
+ "SNDGCA64": "San Diego SAN3",
+ "ALPRGAED": "Alpharetta PDK1",
+ "LSLEILAA": "Lisle DPA3"
+ },
+ */
+// ObjectNode sandiegoLocationNode = mapper.createObjectNode();
+// sandiegoLocationNode.put("SNDGCA64","San Diego SAN3");
+// sandiegoLocationNode.put("ALPRGAED","Alpharetta PDK1");
+ vfObjectNode2.putPOJO("location", locationJsonNode);
+
+ /**
+ * "alarmCondition": {
+ "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation will soon be started",
+ "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+ */
+// ObjectNode alamrCondition1 = mapper.createObjectNode();
+// alamrCondition1.put("A+Fallback+Operation+will+soon+be+started","A Fallback Operation will soon be started");
+// alamrCondition1.put("BRM%2C+Scheduled+Backup+Failed","BRM, Scheduled Backup Failed");
+ vfObjectNode2.putPOJO("alarmCondition", alarmStringJsonNode);
+ emptyServiceObjectNode.putPOJO("c989a551-69f7-4b30-b10a-2e85bb227c30", vfObjectNode2);
+ ObjectNode byServiceBasicObjetNode = mapper.createObjectNode();
+ byServiceBasicObjetNode.putPOJO("byService", emptyServiceObjectNode);
+
+ /**
+ * "byVf": {
+ "": {
+ "vfc": {
+ "": ""
+ },
+ "03596c12-c7e3-44b7-8994-5cdfeda8afdd": {
+ "vfc": {
+ " ": " "
+ }
+ }
+ }
+ }
+ */
+
+ ObjectNode emptyvfcobjectNode = mapper.createObjectNode();
+ ObjectNode vfCObjectNode = mapper.createObjectNode();
+ vfCObjectNode.putPOJO("vfC", emptyObjectNode);
+ ObjectNode subVfCObjectNode = mapper.createObjectNode();
+ subVfCObjectNode.putPOJO("vfc", emptyObjectNode);
+ vfCObjectNode.putPOJO("03596c12-c7e3-44b7-8994-5cdfeda8afdd", subVfCObjectNode);
+ emptyvfcobjectNode.putPOJO("", vfCObjectNode);
+ byServiceBasicObjetNode.putPOJO("byVf", emptyvfcobjectNode);
+
+ ObjectNode readTree = (ObjectNode) mapper.readValue(globalPropsPartial, JsonNode.class);
+
+ readTree.putPOJO("shared", byServiceBasicObjetNode);
+ System.out.println("valuie of objNode:" + readTree);
+ return readTree.toString();
+ }
+
+ private String createCldsSharedObject(CldsAsdcServiceDetail cldsAsdcServiceDetail) throws IOException {
+ /**
+ * "": {
+ "vf": {
+ "": ""
+ },
+ "location": {
+ "": ""
+ },
+ "alarmCondition": {
+ "": ""
+ }
+ }
+ */
+ ObjectNode emptyObjectNode = mapper.createObjectNode();
+ emptyObjectNode.put("", "");
+ ObjectNode vfObjectNode = mapper.createObjectNode();
+ vfObjectNode.putPOJO("vf", emptyObjectNode);
+ vfObjectNode.putPOJO("location", emptyObjectNode);
+ vfObjectNode.putPOJO("alarmCondition", emptyObjectNode);
+ ObjectNode emptyServiceObjectNode = mapper.createObjectNode();
+ emptyServiceObjectNode.putPOJO("", vfObjectNode);
+
+ /**
+ * "vf": {
+ * " ": " ",
+ * "DCAE_CLAMP_DEMO3 1": "DCAE_CLAMP_DEMO3"
+ * }
+ *
+ */
+ ObjectNode vfObjectNode2 = mapper.createObjectNode();
+ ObjectNode dcaeClampDemo3Node = mapper.createObjectNode();
+ dcaeClampDemo3Node.put("", "");
+ dcaeClampDemo3Node.put("DCAE_CLAMP_DEMO3", "DCAE_CLAMP_DEMO3");
+ vfObjectNode2.putPOJO("vf", dcaeClampDemo3Node);
+
+ /**
+ * "location": {
+ "SNDGCA64": "San Diego SAN3",
+ "ALPRGAED": "Alpharetta PDK1",
+ "LSLEILAA": "Lisle DPA3"
+ },
+ */
+ ObjectNode sandiegoLocationNode = mapper.createObjectNode();
+ sandiegoLocationNode.put("SNDGCA64", "San Diego SAN3");
+ sandiegoLocationNode.put("ALPRGAED", "Alpharetta PDK1");
+ vfObjectNode2.putPOJO("location", sandiegoLocationNode);
+
+ /**
+ * "alarmCondition": {
+ "A+Fallback+Operation+will+soon+be+started": "A Fallback Operation will soon be started",
+ "BRM%2C+Auto+Export+Backup+Failed": "BRM, Auto Export Backup Failed",
+ */
+ ObjectNode alamrCondition1 = mapper.createObjectNode();
+ alamrCondition1.put("A+Fallback+Operation+will+soon+be+started", "A Fallback Operation will soon be started");
+ alamrCondition1.put("BRM%2C+Scheduled+Backup+Failed", "BRM, Scheduled Backup Failed");
+ vfObjectNode2.putPOJO("alarmCondition", alamrCondition1);
+ emptyServiceObjectNode.putPOJO("c989a551-69f7-4b30-b10a-2e85bb227c30", vfObjectNode2);
+ ObjectNode byServiceBasicObjetNode = mapper.createObjectNode();
+ byServiceBasicObjetNode.putPOJO("byService", emptyServiceObjectNode);
+
+ /**
+ * "byVf": {
+ "": {
+ "vfc": {
+ "": ""
+ },
+ "03596c12-c7e3-44b7-8994-5cdfeda8afdd": {
+ "vfc": {
+ " ": " "
+ }
+ }
+ }
+ }
+ */
+
+ ObjectNode emptyvfcobjectNode = mapper.createObjectNode();
+ ObjectNode vfCObjectNode = mapper.createObjectNode();
+ vfCObjectNode.putPOJO("vfC", emptyObjectNode);
+ ObjectNode subVfCObjectNode = mapper.createObjectNode();
+ subVfCObjectNode.putPOJO("vfc", emptyObjectNode);
+ vfCObjectNode.putPOJO("03596c12-c7e3-44b7-8994-5cdfeda8afdd", subVfCObjectNode);
+ emptyvfcobjectNode.putPOJO("", vfCObjectNode);
+ byServiceBasicObjetNode.putPOJO("byVf", emptyvfcobjectNode);
+
+ ObjectNode readTree = (ObjectNode) mapper.readValue(globalPropsPartial, JsonNode.class);
+
+ readTree.putPOJO("shared", byServiceBasicObjetNode);
+ System.out.println("valuie of objNode:" + readTree);
+ return readTree.toString();
+ }
+}
diff --git a/src/test/java/org/onap/clamp/clds/it/RefPropIT.java b/src/test/java/org/onap/clamp/clds/it/RefPropIT.java
new file mode 100644
index 000000000..e3dd37232
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/it/RefPropIT.java
@@ -0,0 +1,61 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.it;
+
+import java.io.IOException;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.clamp.clds.AbstractIT;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+/**
+ * Test corg.onap.clamp.ClampDesigner.model.refprop package using RefProp.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class RefPropIT extends AbstractIT {
+
+ /**
+ * Test getting prop value as a JSON Node / template.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testJsonTemplate() throws IOException {
+ ObjectNode root = (ObjectNode) refProp.getJsonTemplate("sm.template");
+ root.put("closedLoopControlName", "ClosedLoop-FRWL-SIG-1582f840-2881-11e6-b4ec-005056a9d756");
+
+ ObjectMapper mapper = new ObjectMapper();
+ String jsonText = mapper.writeValueAsString(root);
+ System.out.println("jsonText=" + jsonText);
+
+ // assertEquals(topicsJson, ref.getTopicsToJson());
+ }
+
+}
diff --git a/src/test/java/org/onap/clamp/clds/model/CldsModelTest.java b/src/test/java/org/onap/clamp/clds/model/CldsModelTest.java
new file mode 100644
index 000000000..414b0425c
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/model/CldsModelTest.java
@@ -0,0 +1,53 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model;
+
+import org.onap.clamp.clds.model.CldsModel;
+import org.jboss.resteasy.spi.BadRequestException;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test org.onap.clamp.ClampDesigner.model.Model
+ */
+public class CldsModelTest {
+
+ @Test
+ public void testCreateUsingControlName() {
+ utilCreateUsingControlName("abc-", "7c42aceb-2350-11e6-8131-fa163ea8d2da");
+ utilCreateUsingControlName("", "7c42aceb-2350-11e6-8131-fa163ea8d2da");
+ }
+
+ @Test(expected = BadRequestException.class)
+ public void testExceptionCreateUsingControlName() {
+ utilCreateUsingControlName("", "c42aceb-2350-11e6-8131-fa163ea8d2da");
+ }
+
+ public void utilCreateUsingControlName(String controlNamePrefix, String controlNameUuid) {
+ CldsModel model = CldsModel.createUsingControlName(controlNamePrefix + controlNameUuid);
+ assertEquals(controlNamePrefix, model.getControlNamePrefix());
+ assertEquals(controlNameUuid, model.getControlNameUuid());
+ }
+}
diff --git a/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
new file mode 100644
index 000000000..54a7a4a72
--- /dev/null
+++ b/src/test/java/org/onap/clamp/clds/model/prop/ModelPropertiesTest.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * Copyright (C) 2017 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============================================
+ * ===================================================================
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.clamp.clds.model.prop;
+
+import org.onap.clamp.clds.transform.TransformUtil;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.IOException;
+
+/**
+ * Test org.onap.clamp.ClampDesigner.model.prop package using ModelProperties.
+ */
+public class ModelPropertiesTest {
+
+ @Test
+ public void testJsonParse() throws IOException {
+ String modelBpmnProp = TransformUtil.getResourceAsString("example/modelBpmnProp.json");
+ String modelProp = TransformUtil.getResourceAsString("example/modelProp.json");
+ String modName = "example-model-name";
+ String controlName = "example-control-name";
+
+ ModelProperties prop = new ModelProperties(modName, controlName, null, modelBpmnProp, modelProp);
+ Assert.assertEquals(modName, prop.getModelName());
+ Assert.assertEquals(controlName, prop.getControlName());
+ Assert.assertEquals(null, prop.getActionCd());
+
+ Global g = prop.getGlobal();
+ Assert.assertEquals("df6fcd2b-1932-429e-bb13-0cd0d32113cb", g.getService());
+ Assert.assertEquals("[SNDGCA64, ALPRGAED]", g.getLocation().toString());
+ Assert.assertEquals("[4b49acee-cf70-4b20-b956-a4fe0c1a8239]", g.getResourceVf().toString());
+
+ Collector c = prop.getCollector();
+ Assert.assertEquals("Collector_", c.getId());
+ Assert.assertEquals("DCAE-COLLECTOR-UCSNMP", c.getTopicPublishes());
+
+ StringMatch sm = prop.getStringMatch();
+ Assert.assertEquals("StringMatch_", sm.getId());
+ Assert.assertEquals("DCAE-CL-EVENT", sm.getTopicPublishes());
+
+ Policy p = prop.getPolicy();
+ Assert.assertEquals("Policy_", p.getId());
+ Assert.assertEquals(null, p.getTopicPublishes());
+ Assert.assertEquals("DCAE-CL-EVENT", p.getTopicSubscribes());
+ Assert.assertEquals(500, p.getTimeout().intValue());
+
+ Tca t = prop.getTca();
+ Assert.assertEquals("Narra", t.getTcaItems().get(0).getTcaName());
+ Assert.assertEquals(Integer.valueOf(4), t.getTcaItems().get(0).getTcaThreshholds().get(0).getThreshhold());
+ }
+
+} \ No newline at end of file