summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicyStubbed.java34
-rw-r--r--src/test/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicyTest.java90
-rw-r--r--src/test/resources/spike_event.json23
3 files changed, 147 insertions, 0 deletions
diff --git a/src/test/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicyStubbed.java b/src/test/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicyStubbed.java
new file mode 100644
index 0000000..7ba4f06
--- /dev/null
+++ b/src/test/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicyStubbed.java
@@ -0,0 +1,34 @@
+package org.onap.aai.datarouter.policy;
+
+import java.io.FileNotFoundException;
+
+import org.onap.aai.datarouter.entity.DocumentStoreDataEntity;
+
+public class SpikeEntityEventPolicyStubbed extends SpikeEntityEventPolicy {
+
+
+ public SpikeEntityEventPolicyStubbed(SpikeEntityEventPolicyConfig config) throws FileNotFoundException {
+ super(config);
+
+ }
+
+ protected void handleSearchServiceOperation(DocumentStoreDataEntity eventEntity, String action, String index) {
+ //Stub out the actual call to Search Data service and instead store/update documents in memory
+ try {
+ switch (action.toLowerCase()) {
+ case "create":
+ InMemorySearchDatastore.put(eventEntity.getId(), eventEntity.getAsJson()); // they are executed if variable == c1
+ break;
+ case "update":
+ InMemorySearchDatastore.put(eventEntity.getId(), eventEntity.getAsJson()); // they are executed if variable == c1
+ break;
+ case "delete":
+ InMemorySearchDatastore.remove(eventEntity.getId()); // they are executed if variable == c1
+ break;
+ default:
+ break;
+ }
+ } catch (Exception ex) {
+ }
+ }
+}
diff --git a/src/test/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicyTest.java b/src/test/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicyTest.java
new file mode 100644
index 0000000..fd0d726
--- /dev/null
+++ b/src/test/java/org/onap/aai/datarouter/policy/SpikeEntityEventPolicyTest.java
@@ -0,0 +1,90 @@
+package org.onap.aai.datarouter.policy;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
+
+import java.io.File;
+import java.io.FileInputStream;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Message;
+import org.apache.commons.io.IOUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.aai.datarouter.util.NodeUtils;
+import org.onap.aai.datarouter.util.SearchServiceAgent;
+import org.powermock.api.mockito.PowerMockito;
+
+
+
+public class SpikeEntityEventPolicyTest {
+ SpikeEntityEventPolicy policy;
+ String eventJson;
+
+ @SuppressWarnings("unchecked")
+ @Before
+ public void init() throws Exception {
+ SpikeEntityEventPolicyConfig config = PowerMockito.mock(SpikeEntityEventPolicyConfig.class);
+ PowerMockito.when(config.getSearchKeystorePwd()).thenReturn("password");
+ PowerMockito.when(config.getSourceDomain()).thenReturn("JUNIT");
+
+
+ SearchServiceAgent searchServiceAgent = PowerMockito.mock(SearchServiceAgent.class);
+ PowerMockito.whenNew(SearchServiceAgent.class).withAnyArguments()
+ .thenReturn(searchServiceAgent);
+
+
+ policy = new SpikeEntityEventPolicyStubbed(config);
+ FileInputStream event = new FileInputStream(new File("src/test/resources/spike_event.json"));
+ eventJson = IOUtils.toString(event, "UTF-8");
+
+ }
+
+ @Test
+ public void testProcess_success() throws Exception {
+ policy.process(getExchangeEvent("12345", "create", "generic-vnf"));
+ policy.process(getExchangeEvent("23456", "create", "generic-vnf"));
+
+ assertNotNull(
+ InMemorySearchDatastore.get(NodeUtils.generateUniqueShaDigest("generic-vnf/12345")));
+ assertNotNull(
+ InMemorySearchDatastore.get(NodeUtils.generateUniqueShaDigest("generic-vnf/23456")));
+
+
+ policy.process(getExchangeEvent("23456", "delete", "generic-vnf"));
+ assertNull(InMemorySearchDatastore.get(NodeUtils.generateUniqueShaDigest("23456")));
+ }
+ @Test
+ public void testProcess_fail() throws Exception {
+ policy.process(getExchangeEvent("12345", "create", "NotValid"));
+ assertNull(
+ InMemorySearchDatastore.get(NodeUtils.generateUniqueShaDigest("NotValid/12345")));
+
+ policy.process(getExchangeEvent("", "create", "generic-vnf"));
+ assertNull(
+ InMemorySearchDatastore.get(NodeUtils.generateUniqueShaDigest("generic-vnf/")));
+
+ }
+
+
+ private Exchange getExchangeEvent(String key, String action, String type) {
+ Object obj = eventJson.replace("$KEY", key).replace("$ACTION", action).replace("$TYPE", type);
+ Exchange exchange = PowerMockito.mock(Exchange.class);
+ Message inMessage = PowerMockito.mock(Message.class);
+ Message outMessage = PowerMockito.mock(Message.class);
+ PowerMockito.when(exchange.getIn()).thenReturn(inMessage);
+ PowerMockito.when(inMessage.getBody()).thenReturn(obj);
+
+ PowerMockito.when(exchange.getOut()).thenReturn(outMessage);
+ PowerMockito.doNothing().when(outMessage).setBody(anyObject());
+ PowerMockito.doNothing().when(outMessage).setHeader(anyString(), anyObject());
+
+ return exchange;
+
+ }
+
+
+
+}
diff --git a/src/test/resources/spike_event.json b/src/test/resources/spike_event.json
new file mode 100644
index 0000000..0af1127
--- /dev/null
+++ b/src/test/resources/spike_event.json
@@ -0,0 +1,23 @@
+{"operation": "$ACTION",
+ "transaction-id": "ae83cf91-b73f-4759-b973-58c4192cea4c",
+ "timestamp": 1499460851548,
+ "vertex": {
+ "key": "$KEY",
+ "schema-version": "v10",
+ "type": "$TYPE",
+ "properties": {
+ "vnf-id": "GenericVNFIdBpCNtULbEw9",
+ "in-maint": "false",
+ "heat-stack-id": "GenericVNFIdBpCNtULbEw1-12345-678-",
+ "prov-status": "junk",
+ "equipment-role": "ASBG",
+ "ipv4-oam-address": "5.6.7.8",
+ "vnf-name": "GenericVNFIdBpCNtULbEw9",
+ "vnf-type": "asbg",
+ "is-closed-loop-disabled": "false",
+ "orchestration-status": "Running",
+ "aai-node-type": "generic-vnf"
+ }
+ },
+ "result": "SUCCESS"
+}