diff options
Diffstat (limited to 'src/test/java')
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 |