summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorVidyashree-Huawei <vidyashree.rama@huawei.com>2020-01-22 17:25:46 +0530
committerVidyashree-Huawei <vidyashree.rama@huawei.com>2020-01-29 14:40:39 +0530
commit4593656e1f168c067e2a37389aeaa67889c1c173 (patch)
tree3f78537a494fb32b3aed1e32e74c79887839219b /src/test
parent33fc823baeda6d4e872614b146ab865823a3ca0f (diff)
Create a camel route that would retrieve all the DCAE blueprints
Retreive all the DCAE blueprints and update DcaeInventoryCache Change-Id: Ia03a89c1871119a208094c014e5cb8aa8b4f71d3 Issue-ID: CLAMP-573 Signed-off-by: Vidyashree-Huawei <vidyashree.rama@huawei.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java (renamed from src/test/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponseCacheTest.java)47
-rw-r--r--src/test/java/org/onap/clamp/loop/DcaeComponentTest.java89
-rw-r--r--src/test/resources/clds/camel/routes/dcae-flows.xml43
-rwxr-xr-xsrc/test/resources/http-cache/third_party_proxy.py19
4 files changed, 197 insertions, 1 deletions
diff --git a/src/test/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponseCacheTest.java b/src/test/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java
index 26cc831ec..50da40049 100644
--- a/src/test/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponseCacheTest.java
+++ b/src/test/java/org/onap/clamp/clds/model/dcae/DcaeInventoryResponseCacheTestItCase.java
@@ -24,14 +24,31 @@
package org.onap.clamp.clds.model.dcae;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertEquals;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.builder.ExchangeBuilder;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.clamp.clds.Application;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
-public class DcaeInventoryResponseCacheTest {
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = Application.class)
+public class DcaeInventoryResponseCacheTestItCase {
public static DcaeInventoryCache inventoryCache = new DcaeInventoryCache();
+ @Autowired
+ CamelContext camelContext;
+
/**
* Initialize the responses.
*/
@@ -78,4 +95,32 @@ public class DcaeInventoryResponseCacheTest {
}
}
+ @Test
+ public void testDcaeInventoryResponse() {
+ Exchange exchange = ExchangeBuilder.anExchange(camelContext).build();
+ Exchange exchangeResponse = camelContext.createProducerTemplate()
+ .send("direct:get-all-dcae-blueprint-inventory", exchange);
+ assertThat(exchangeResponse.getIn().getHeader("CamelHttpResponseCode")).isEqualTo(200);
+ Set<DcaeInventoryResponse> blueprint = inventoryCache.getAllBlueprintsPerLoopId("testAsdcServiceId");
+ assertThat(blueprint.size()).isEqualTo(2);
+
+ DcaeInventoryResponse response1 = new DcaeInventoryResponse();
+ response1.setAsdcResourceId("0");
+ response1.setTypeName("testTypeName");
+ response1.setAsdcServiceId("testAsdcServiceId");
+ response1.setBlueprintTemplate("testBlueprintTemplate");
+ response1.setTypeId("testtypeId");
+ DcaeInventoryResponse response2 = new DcaeInventoryResponse();
+ response2.setAsdcResourceId("1");
+ response2.setTypeName("testTypeName2");
+ response2.setAsdcServiceId("testAsdcServiceId");
+ response2.setBlueprintTemplate("testBlueprintTemplate2");
+ response2.setTypeId("testtypeId2");
+
+ Set<DcaeInventoryResponse> expectedBlueprint = new HashSet<>();
+ expectedBlueprint.add(response1);
+ expectedBlueprint.add(response2);
+
+ assertEquals(blueprint, expectedBlueprint);
+ }
}
diff --git a/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java b/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java
index 557fdcecf..4daab2ecc 100644
--- a/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java
+++ b/src/test/java/org/onap/clamp/loop/DcaeComponentTest.java
@@ -30,11 +30,15 @@ import com.google.gson.JsonObject;
import java.io.IOException;
import java.util.HashSet;
+import java.util.List;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.json.simple.parser.ParseException;
+import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
+import org.onap.clamp.clds.model.dcae.DcaeInventoryResponse;
import org.onap.clamp.clds.model.dcae.DcaeOperationStatusResponse;
import org.onap.clamp.loop.components.external.DcaeComponent;
import org.onap.clamp.loop.components.external.ExternalComponentState;
@@ -151,4 +155,89 @@ public class DcaeComponentTest {
ExternalComponentState state9 = dcae.computeState(exchange);
assertThat(state9.getStateName()).isEqualTo("IN_ERROR");
}
+
+ @Test
+ public void convertToDcaeInventoryResponseTest() throws IOException, ParseException {
+ String dcaeFakeResponse = "{\n"
+ + " \"links\": {\n"
+ + " \"previousLink\": {\n"
+ + " \"title\": \"string\",\n"
+ + " \"rel\": \"string\",\n"
+ + " \"uri\": \"string\",\n"
+ + " \"uriBuilder\": {},\n"
+ + " \"rels\": [\n"
+ + " \"string\"\n"
+ + " ],\n"
+ + " \"params\": {\n"
+ + " \"additionalProp1\": \"string\",\n"
+ + " \"additionalProp2\": \"string\",\n"
+ + " \"additionalProp3\": \"string\"\n"
+ + " },\n"
+ + " \"type\": \"string\"\n"
+ + " },\n"
+ + " \"nextLink\": {\n"
+ + " \"title\": \"string\",\n"
+ + " \"rel\": \"string\",\n"
+ + " \"uri\": \"string\",\n"
+ + " \"uriBuilder\": {},\n"
+ + " \"rels\": [\n"
+ + " \"string\"\n"
+ + " ],\n"
+ + " \"params\": {\n"
+ + " \"additionalProp1\": \"string\",\n"
+ + " \"additionalProp2\": \"string\",\n"
+ + " \"additionalProp3\": \"string\"\n"
+ + " },\n"
+ + " \"type\": \"string\"\n"
+ + " }\n"
+ + " },\n"
+ + " \"totalCount\": 0,\n"
+ + " \"items\": [\n"
+ + " {\n"
+ + " \"owner\": \"testOwner\",\n"
+ + " \"application\": \"testApplication\",\n"
+ + " \"component\": \"testComponent\",\n"
+ + " \"typeName\": \"testTypeName\",\n"
+ + " \"typeVersion\": 0,\n"
+ + " \"blueprintTemplate\": \"testBlueprintTemplate\",\n"
+ + " \"serviceIds\": [\n"
+ + " \"serviceId1\", \"serviceId2\"\n"
+ + " ],\n"
+ + " \"vnfTypes\": [\n"
+ + " \"vnfType1\", \"vnfType2\"\n"
+ + " ],\n"
+ + " \"serviceLocations\": [\n"
+ + " \"serviceLocation1\", \"serviceLocation2\"\n"
+ + " ],\n"
+ + " \"asdcServiceId\": \"testAsdcServiceId\",\n"
+ + " \"asdcResourceId\": \"testAsdcResourceId\",\n"
+ + " \"asdcServiceURL\": \"testAsdcServiceURL\",\n"
+ + " \"typeId\": \"testTypeId\",\n"
+ + " \"selfLink\": {\n"
+ + " \"title\": \"selfLinkTitle\",\n"
+ + " \"rel\": \"selfLinkRel\",\n"
+ + " \"uri\": \"selfLinkUri\",\n"
+ + " \"uriBuilder\": {},\n"
+ + " \"rels\": [\n"
+ + " \"string\"\n"
+ + " ],\n"
+ + " \"params\": {\n"
+ + " \"additionalProp1\": \"string\",\n"
+ + " \"additionalProp2\": \"string\",\n"
+ + " \"additionalProp3\": \"string\"\n"
+ + " },\n"
+ + " \"type\": \"string\"\n"
+ + " },\n"
+ + " \"created\": \"2020-01-22T09:38:15.436Z\",\n"
+ + " \"deactivated\": \"2020-01-22T09:38:15.437Z\"\n"
+ + " }\n"
+ + " ]\n"
+ + "}";
+ List<DcaeInventoryResponse> responseObject = DcaeComponent.convertToDcaeInventoryResponse(dcaeFakeResponse);
+ assertThat(responseObject.get(0).getAsdcResourceId()).isEqualTo("testAsdcResourceId");
+ assertThat(responseObject.get(0).getAsdcServiceId()).isEqualTo("testAsdcServiceId");
+ assertThat(responseObject.get(0).getTypeName()).isEqualTo("testTypeName");
+ assertThat(responseObject.get(0).getTypeId()).isEqualTo("testTypeId");
+ assertThat(responseObject.get(0).getBlueprintTemplate()).isEqualTo("testBlueprintTemplate");
+ }
}
diff --git a/src/test/resources/clds/camel/routes/dcae-flows.xml b/src/test/resources/clds/camel/routes/dcae-flows.xml
index fb3bc90ec..1e5cbd89a 100644
--- a/src/test/resources/clds/camel/routes/dcae-flows.xml
+++ b/src/test/resources/clds/camel/routes/dcae-flows.xml
@@ -213,4 +213,47 @@
</doTry>
</route>
+ <route id="get-all-dcae-blueprint-inventory">
+ <from uri="direct:get-all-dcae-blueprint-inventory" />
+ <log loggingLevel="INFO"
+ message="Getting all DCAE blueprint from inventory" />
+ <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeLog('DCAE', 'Getting all blueprint from inventory')" />
+ <doTry>
+ <setHeader headerName="CamelHttpMethod">
+ <constant>GET</constant>
+ </setHeader>
+ <setHeader headerName="X-ONAP-RequestID">
+ <simple>${exchangeProperty[X-ONAP-RequestID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-InvocationID">
+ <simple>${exchangeProperty[X-ONAP-InvocationID]}
+ </simple>
+ </setHeader>
+ <setHeader headerName="X-ONAP-PartnerName">
+ <simple>${exchangeProperty[X-ONAP-PartnerName]}
+ </simple>
+ </setHeader>
+ <log loggingLevel="INFO"
+ message="Endpoint to query Blueprints from DCAE inventory: {{clamp.config.dcae.inventory.url}}/dcae-service-types?${header[CamelHttpQuery]}"></log>
+ <toD uri="{{clamp.config.dcae.inventory.url}}/dcae-service-types;bridgeEndpoint=true&amp;useSystemProperties=true&amp;throwExceptionOnFailure=${exchangeProperty[raiseHttpExceptionFlag]}&amp;authMethod=Basic&amp;authUsername={{clamp.config.dcae.deployment.userName}}&amp;authPassword={{clamp.config.dcae.deployment.password}}&amp;connectionTimeToLive=5000&amp;httpClient.connectTimeout=10000&amp;httpClient.socketTimeout=30000&amp;authenticationPreemptive=true&amp;connectionClose=true" />
+ <convertBodyTo type="java.lang.String" />
+ <setProperty propertyName="dcaeResponseList">
+ <method ref="org.onap.clamp.loop.components.external.DcaeComponent"
+ method="convertToDcaeInventoryResponse(${body})" />
+ </setProperty>
+ <split>
+ <simple>${exchangeProperty[dcaeResponseList]}</simple>
+ <convertBodyTo type="org.onap.clamp.clds.model.dcae.DcaeInventoryResponse" />
+ <setProperty propertyName="dcaeResponse">
+ <simple>${body}</simple>
+ </setProperty>
+ <to uri="bean:org.onap.clamp.clds.model.dcae.DcaeInventoryCache?method=addDcaeInventoryResponse(${exchangeProperty[dcaeResponse]})" />
+ </split>
+ <doFinally>
+ <to uri="direct:reset-raise-http-exception-flag" />
+ <to uri="bean:org.onap.clamp.flow.log.FlowLogOperation?method=invokeReturnLog()" />
+ </doFinally>
+ </doTry>
+ </route>
</routes> \ No newline at end of file
diff --git a/src/test/resources/http-cache/third_party_proxy.py b/src/test/resources/http-cache/third_party_proxy.py
index 9dcc4b3a3..32f7faf4e 100755
--- a/src/test/resources/http-cache/third_party_proxy.py
+++ b/src/test/resources/http-cache/third_party_proxy.py
@@ -249,6 +249,22 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler):
with open(cached_file_content, 'w') as f:
f.write(jsonGenerated)
return True
+ elif self.path.startswith("/dcae-service-types") and http_type == "GET":
+ if not _file_available:
+ self.path = "/dcae-service-types"
+ cached_file_folder = '%s/%s' % (TMP_ROOT, self.path)
+ cached_file_content = self._get_cached_content_file_name(cached_file_folder)
+ cached_file_header = self._get_cached_header_file_name(cached_file_folder)
+ print "self.path start with /dcae-service-types, generating response json..."
+ response = "{\"links\": {\"previousLink\": {\"title\": \"string\",\"rel\": \"string\",\"uri\": \"string\",\"uriBuilder\": {},\"rels\": [\"string\"],\"params\": {\"additionalProp1\": \"string\",\"additionalProp2\": \"string\",\"additionalProp3\": \"string\"},\"type\": \"string\"},\"nextLink\": {\"title\": \"string\",\"rel\": \"string\",\"uri\": \"string\",\"uriBuilder\": {},\"rels\": [\"string\"],\"params\": {\"additionalProp1\": \"string\",\"additionalProp2\": \"string\",\"additionalProp3\": \"string\"},\"type\": \"string\"}},\"totalCount\": 1,\"items\": [{\"owner\": \"testOwner\",\"application\": \"testApplication\",\"component\": \"testComponent\",\"typeName\": \"testTypeName\",\"typeVersion\": 0,\"blueprintTemplate\": \"testBlueprintTemplate\",\"serviceIds\": [\"serviceId1\", \"serviceId2\"],\"vnfTypes\": [\"vnfType1\", \"vnfType2\"],\"serviceLocations\": [\"serviceLocation1\", \"serviceLocation2\"],\"asdcServiceId\": \"testAsdcServiceId\",\"asdcResourceId\": \"0\",\"asdcServiceURL\": \"testAsdcServiceURL\",\"typeId\": \"testtypeId\",\"selfLink\": {\"title\": \"selfLinkTitle\",\"rel\": \"selfLinkRel\",\"uri\": \"selfLinkUri\",\"uriBuilder\": {},\"rels\": [\"string\"],\"params\": {\"additionalProp1\": \"string\",\"additionalProp2\": \"string\",\"additionalProp3\": \"string\"},\"type\": \"string\"},\"created\": \"2020-01-22T09:38:15.436Z\",\"deactivated\": \"2020-01-22T09:38:15.437Z\"},{\"owner\": \"testOwner2\",\"application\": \"testApplication1\",\"component\": \"testComponent2\",\"typeName\": \"testTypeName2\",\"typeVersion\": 0,\"blueprintTemplate\": \"testBlueprintTemplate2\",\"serviceIds\": [\"serviceId3\", \"serviceId4\"],\"vnfTypes\": [\"vnfType13\", \"vnfType4\"],\"serviceLocations\": [\"serviceLocation3\", \"serviceLocation4\"],\"asdcServiceId\": \"testAsdcServiceId\",\"asdcResourceId\": \"1\",\"asdcServiceURL\": \"testAsdcServiceURL2\",\"typeId\": \"testtypeId2\",\"selfLink\": {\"title\": \"selfLinkTitle\",\"rel\": \"selfLinkRel\",\"uri\": \"selfLinkUri\",\"uriBuilder\": {},\"rels\": [\"string\"],\"params\": {\"additionalProp1\": \"string\",\"additionalProp2\": \"string\",\"additionalProp3\": \"string\"},\"type\": \"string\"},\"created\": \"2020-01-22T09:38:15.436Z\",\"deactivated\": \"2020-01-22T09:38:15.437Z\"}]}"
+ print "jsonGenerated: " + response
+
+ os.makedirs(cached_file_folder, 0777)
+ with open(cached_file_header, 'w') as f:
+ f.write("{\"Content-Length\": \"" + str(len(response)) + "\", \"Content-Type\": \"application/json\"}")
+ with open(cached_file_content, 'w') as f:
+ f.write(response)
+ return True
else:
return False
@@ -305,6 +321,9 @@ class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler):
if self.path.startswith("/dcae-service-types?asdcResourceId="):
print "DCAE case deleting folder created " + cached_file_folder
shutil.rmtree(cached_file_folder, ignore_errors=False, onerror=None)
+ elif self.path.startswith("/dcae-service-types"):
+ print "DCAE case deleting folder created " + cached_file_folder
+ shutil.rmtree(cached_file_folder, ignore_errors=False, onerror=None)
else:
print "NOT in DCAE case deleting folder created " + cached_file_folder