aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSingal, Kapil (ks220y) <ks220y@att.com>2018-09-04 13:19:51 -0400
committerSingal, Kapil (ks220y) <ks220y@att.com>2018-09-04 13:19:51 -0400
commit7dc239c5f08a2fb1425054cc85d7868400aecf06 (patch)
treeeb05dbc47e742512196a8e6f31aa3e4f65969d4d
parentc5abb16c82343925fe3ae7d350e9ef0fbfa7f89c (diff)
SDN Controller Blueprints Data Adaptor
Creating SDN Controller Blueprints Data Adaptor Junit Tests Change-Id: Icc825e46b5b128049ddcd4adc3fdc1037d0bee55 Issue-ID: CCSDK-511 Signed-off-by: Singal, Kapil (ks220y) <ks220y@att.com>
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigPropertyMapDaoTest.java48
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigResourceDaoTest.java122
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigTransactionLogDaoTest.java76
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/QueryExecutorDaoTest.java78
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceNodeTest.java83
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceServiceTest.java189
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/log4j.properties5
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/mappings/service-mapping.json11
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/reference/resource_data.json3
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/sql/schema.sql46
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context-h2db.xml82
-rw-r--r--blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context.xml95
12 files changed, 838 insertions, 0 deletions
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigPropertyMapDaoTest.java b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigPropertyMapDaoTest.java
new file mode 100644
index 000000000..487bcd932
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigPropertyMapDaoTest.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.config.data.adaptor.dao;
+
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-context-h2db.xml"})
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class ConfigPropertyMapDaoTest {
+
+ @Autowired
+ private ConfigPropertyMapDao configPropertyMapDao;
+
+ @Autowired
+ private QueryExecutorDao queryExecutorDao;
+
+ @Test
+ public void testConfigResourcesData() throws Exception {
+ String sql = "INSERT INTO CONFIG_PROPERTY_MAP (reference_key, reference_value) VALUES ( ?, ?)";
+ Object[] data = new Object[] {"dummy123", "username123"};
+ int result = queryExecutorDao.update(sql, data);
+ Assert.assertNotNull("Failed to get Query Result", result);
+
+ String propKeyValye = configPropertyMapDao.getConfigPropertyByKey("org.onap.ccsdk.config.rest.adaptors.test");
+ Assert.assertNull("propKeyValue is null", propKeyValye);
+ }
+
+}
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigResourceDaoTest.java b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigResourceDaoTest.java
new file mode 100644
index 000000000..ae493e692
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigResourceDaoTest.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.config.data.adaptor.dao;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import org.apache.commons.io.IOUtils;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.onap.ccsdk.config.data.adaptor.domain.ConfigResource;
+import org.onap.ccsdk.config.data.adaptor.domain.ResourceAssignmentData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-context-h2db.xml"})
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class ConfigResourceDaoTest {
+
+ private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigResourceDaoTest.class);
+
+ @Autowired
+ private ConfigResourceDao configResourceDao;
+
+ @Before
+ public void initialise() {
+
+ }
+
+ @Test
+ public void testAssignmentResourceData() throws Exception {
+ ConfigResource configResource = new ConfigResource();
+ String resourceData = IOUtils.toString(
+ ConfigResourceDaoTest.class.getClassLoader().getResourceAsStream("reference/resource_data.json"),
+ Charset.defaultCharset());
+
+ logger.trace("resourceData = " + resourceData);
+ configResource.setResourceData(resourceData);
+ configResource.setServiceTemplateName("sample-name");
+ configResource.setServiceTemplateVersion("1.0.0");
+ configResource.setResourceId("123456");
+ configResource.setResourceType("vUSP - vDBE-IPX HUB");
+ configResource.setRequestId("123456");
+ configResource.setRecipeName("activate-action");
+ configResource.setTemplateName("vrr-service-template");
+ configResource.setMaskData(null);
+ configResource.setStatus("success");
+ configResource.setCreatedDate(new Date(System.currentTimeMillis()));
+ configResource.setUpdatedBy("an188a");
+
+ List<ResourceAssignmentData> resourceAssignments = new ArrayList<>();
+ ResourceAssignmentData resourceAssignmentData = new ResourceAssignmentData();
+ resourceAssignmentData.setDataType("string");
+ resourceAssignmentData.setStatus("success");
+ resourceAssignmentData.setMessage("success");
+ resourceAssignmentData.setTemplateKeyName("sample");
+ resourceAssignmentData.setResourceName("sample");
+ // resourceAssignmentData.setResourceValue("sample123");
+ resourceAssignmentData.setSource("input");
+ resourceAssignments.add(resourceAssignmentData);
+ configResource.setResourceAssignments(resourceAssignments);
+
+ ConfigResource dbConfigResource = configResourceDao.save(configResource);
+ logger.info("Saved sucessfully : " + dbConfigResource.toString());
+ Assert.assertNotNull("ConfigResource is null", dbConfigResource);
+ Assert.assertNotNull("Resource Assignment Data is null", dbConfigResource.getResourceAssignments());
+ Assert.assertEquals("Resource Assignment Data count missmatch", true,
+ dbConfigResource.getResourceAssignments().size() > 0);
+ }
+
+ @Test
+ public void testConfigResourcesData() throws Exception {
+ ConfigResource configResourceInput = new ConfigResource();
+ configResourceInput.setResourceId("123456");
+ List<ConfigResource> dbConfigResources = configResourceDao.findByConfigResource(configResourceInput);
+ Assert.assertNotNull("ConfigResources is null", dbConfigResources);
+ Assert.assertEquals("ConfigResources size missmatch", true, dbConfigResources.size() > 0);
+
+ for (ConfigResource configResource : dbConfigResources) {
+ Assert.assertNotNull("ConfigResources Assignments is null", configResource.getResourceAssignments());
+ Assert.assertTrue("ConfigResources Assignments size miss mathch ",
+ configResource.getResourceAssignments().size() > 0);
+ logger.trace("ResourceAssignments = " + configResource.getResourceAssignments());
+ }
+ }
+
+ @Test
+ public void testDeleteByConfigResource() throws Exception {
+ ConfigResource configResourceInput = new ConfigResource();
+ configResourceInput.setResourceId("123456");
+
+ List<ConfigResource> dbConfigResources = configResourceDao.findByConfigResource(configResourceInput);
+ Assert.assertTrue("ConfigResources is null", !dbConfigResources.isEmpty());
+
+ configResourceInput.setConfigResourceId(dbConfigResources.get(0).getConfigResourceId());
+ configResourceDao.deleteByConfigResource(configResourceInput);
+
+ dbConfigResources = configResourceDao.findByConfigResource(configResourceInput);
+ Assert.assertTrue("ConfigResources is not null", dbConfigResources.isEmpty());
+ }
+}
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigTransactionLogDaoTest.java b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigTransactionLogDaoTest.java
new file mode 100644
index 000000000..1fceccebf
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigTransactionLogDaoTest.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.config.data.adaptor.dao;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.onap.ccsdk.config.data.adaptor.DataAdaptorConstants;
+import org.onap.ccsdk.config.data.adaptor.domain.TransactionLog;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-context-h2db.xml"})
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class ConfigTransactionLogDaoTest {
+ private static EELFLogger logger = EELFManager.getInstance().getLogger(ConfigTransactionLogDaoTest.class);
+
+ @Autowired
+ private TransactionLogDao transactionLogDao;
+
+ @Autowired
+ private NamedQueryExecutorDao namedQueryExecutorDao;
+
+ @Before
+ public void initialise() {
+
+ }
+
+ @Test
+ public void testQueryExecution() throws Exception {
+ String requestId = "12345";
+
+ transactionLogDao
+ .save(new TransactionLog(requestId, DataAdaptorConstants.LOG_MESSAGE_TYPE_LOG, "Received Request"));
+
+ List<TransactionLog> result = transactionLogDao.getTransactionsByRequestId(requestId);
+ logger.info("DB ArtifactReference :" + result);
+ Assert.assertNotNull("Failed to get Query Result", result);
+
+ List<TransactionLog> result2 =
+ transactionLogDao.getTransactionsByRequestId(requestId, DataAdaptorConstants.LOG_MESSAGE_TYPE_LOG);
+ logger.info("DB ArtifactReference :" + result2);
+ Assert.assertNotNull("Failed to get Query Result", result2);
+
+ String namedsql = "SELECT * FROM CONFIG_TRANSACTION_LOG WHERE request_id = :request_id";
+ Map<String, Object> parameters = new HashMap<>();
+ parameters.put("request_id", "12345");
+ List<Map<String, Object>> namedresult = namedQueryExecutorDao.query(namedsql, parameters);
+ logger.info("DB ArtifactReference :" + namedresult);
+ Assert.assertNotNull("Failed to get Query Result", namedresult);
+
+ }
+
+}
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/QueryExecutorDaoTest.java b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/QueryExecutorDaoTest.java
new file mode 100644
index 000000000..ce3e95224
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/QueryExecutorDaoTest.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.config.data.adaptor.dao;
+
+import java.util.Date;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-context-h2db.xml"})
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+public class QueryExecutorDaoTest {
+ private static EELFLogger logger = EELFManager.getInstance().getLogger(QueryExecutorDaoTest.class);
+
+ @Autowired
+ private QueryExecutorDao queryExecutorDao;
+
+ @Before
+ public void initialise() {
+
+ }
+
+ @Test
+ public void testInsertQueryExecution() throws Exception {
+
+ String sql = "INSERT INTO CONFIG_RESOURCE"
+ + "(config_resource_id, resource_id, resource_type, template_name, recipe_name, request_id, resource_data, mask_data, created_date, updated_by) "
+ + "VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";
+ Object[] data =
+ new Object[] {"12345", "vUSP - vDBE-IPX HUB", "1234567", "activate-action", "vrr-service-template",
+ "resource-data", "mask-data", null, new Date(System.currentTimeMillis()), "ab1234"};
+ int result = queryExecutorDao.update(sql, data);
+ logger.info("Updated successfully rows :" + result);
+ Assert.assertNotNull("Failed to get Query Result", result);
+ }
+
+ @Test
+ public void testUpdateQueryExecution() throws Exception {
+
+ String sql = "UPDATE CONFIG_RESOURCE set recipe_name=? where config_resource_id=?";
+ Object[] data = new Object[] {"vce-service-template", "12345"};
+ int result = queryExecutorDao.update(sql, data);
+ logger.info("Updated successfully rows :" + result);
+ Assert.assertNotNull("Failed to get Query Result", result);
+ }
+
+ @Test
+ public void testDeleteQueryExecution() throws Exception {
+
+ String sql = "DELETE FROM CONFIG_RESOURCE where config_resource_id=?";
+ Object[] data = new Object[] {"12345"};
+ int result = queryExecutorDao.update(sql, data);
+ logger.info("Updated successfully rows :" + result);
+ Assert.assertNotNull("Failed to get Query Result", result);
+ }
+
+}
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceNodeTest.java b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceNodeTest.java
new file mode 100644
index 000000000..847d5ed42
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceNodeTest.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.config.data.adaptor.service;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.ccsdk.config.data.adaptor.DataAdaptorConstants;
+import org.onap.ccsdk.config.data.adaptor.dao.ConfigPropertyMapDao;
+import org.onap.ccsdk.config.data.adaptor.dao.ConfigResourceDao;
+import org.onap.ccsdk.config.data.adaptor.dao.NamedQueryExecutorDao;
+import org.onap.ccsdk.config.data.adaptor.dao.QueryExecutorDao;
+import org.onap.ccsdk.config.data.adaptor.dao.TransactionLogDao;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-context-h2db.xml"})
+public class ConfigResourceNodeTest {
+
+ ConfigResourceNode configResourceNode;
+
+ ConfigResourceService configResourceService;
+
+ @Autowired
+ TransactionLogDao transactionLogDao;
+
+ @Autowired
+ ConfigResourceDao configResourceDao;
+
+ @Autowired
+ QueryExecutorDao queryExecutorDao;
+
+ @Autowired
+ NamedQueryExecutorDao namedQueryExecutorDao;
+
+ @Autowired
+ ConfigPropertyMapDao configPropertyMapDao;
+
+ @Before
+ public void before() {
+ configResourceService = new ConfigResourceServiceImpl(transactionLogDao, configResourceDao, queryExecutorDao,
+ namedQueryExecutorDao, configPropertyMapDao);
+ configResourceNode = new ConfigResourceNode(configResourceService);
+ }
+
+ @Test
+ public void testSaveConfigTransactionLog() throws Exception {
+ Map<String, String> inParams = new HashMap<>();
+ inParams.put(DataAdaptorConstants.INPUT_PARAM_MESSAGE_TYPE, "messageType");
+ inParams.put(DataAdaptorConstants.INPUT_PARAM_MESSAGE, "message");
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx.setAttribute("request-id", "requestId12345");
+
+ configResourceNode.saveConfigTransactionLog(inParams, ctx);
+
+ Assert.assertTrue(!transactionLogDao.getTransactionsByRequestId("requestId12345").isEmpty());
+ }
+
+ @Test(expected = SvcLogicException.class)
+ public void testSaveConfigTransactionLogException() throws Exception {
+ configResourceNode = new ConfigResourceNode(null);
+ configResourceNode.saveConfigTransactionLog(new HashMap<>(), new SvcLogicContext());
+ }
+}
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceServiceTest.java b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceServiceTest.java
new file mode 100644
index 000000000..1240ca237
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceServiceTest.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright © 2017-2018 AT&T Intellectual Property.
+ *
+ * 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.
+ */
+
+package org.onap.ccsdk.config.data.adaptor.service;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import org.apache.commons.io.IOUtils;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.ccsdk.config.data.adaptor.dao.ConfigPropertyMapDao;
+import org.onap.ccsdk.config.data.adaptor.dao.ConfigResourceDao;
+import org.onap.ccsdk.config.data.adaptor.dao.ConfigResourceDaoTest;
+import org.onap.ccsdk.config.data.adaptor.dao.NamedQueryExecutorDao;
+import org.onap.ccsdk.config.data.adaptor.dao.QueryExecutorDao;
+import org.onap.ccsdk.config.data.adaptor.dao.TransactionLogDao;
+import org.onap.ccsdk.config.data.adaptor.domain.ConfigResource;
+import org.onap.ccsdk.config.data.adaptor.domain.ResourceAssignmentData;
+import org.onap.ccsdk.config.data.adaptor.domain.TransactionLog;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration(locations = {"classpath:test-context-h2db.xml"})
+public class ConfigResourceServiceTest {
+
+ ConfigResourceService configResourceService;
+
+ @Autowired
+ TransactionLogDao transactionLogDao;
+
+ @Autowired
+ ConfigResourceDao configResourceDao;
+
+ @Autowired
+ QueryExecutorDao queryExecutorDao;
+
+ @Autowired
+ NamedQueryExecutorDao namedQueryExecutorDao;
+
+ @Autowired
+ ConfigPropertyMapDao configPropertyMapDao;
+
+ @Before
+ public void before() {
+ configResourceService = new ConfigResourceServiceImpl(transactionLogDao, configResourceDao, queryExecutorDao,
+ namedQueryExecutorDao, configPropertyMapDao);
+ }
+
+ @Test
+ public void testUpdate() throws Exception {
+ String sql = "INSERT INTO CONFIG_RESOURCE"
+ + "(config_resource_id, resource_id, resource_type, template_name, recipe_name, request_id, resource_data, mask_data, created_date, updated_by) "
+ + "VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";
+ Object[] data =
+ new Object[] {"54321", "vUSP - vDBE-IPX HUB", "1234567", "activate-action", "vrr-service-template",
+ "resource-data", "mask-data", null, new Date(System.currentTimeMillis()), "ab1234"};
+ int result = configResourceService.update(sql, data);
+ Assert.assertTrue(result == 1);
+
+ sql = "SELECT * FROM CONFIG_RESOURCE WHERE config_resource_id = ?";
+ data = new Object[] {"54321"};
+ List<Map<String, Object>> queryResult = configResourceService.query(sql, data);
+ Assert.assertTrue(queryResult.size() == 1);
+ }
+
+ @Test
+ public void testSaveAndGetConfigResource() throws Exception {
+ ConfigResource configResource = new ConfigResource();
+ String resourceData = IOUtils.toString(
+ ConfigResourceDaoTest.class.getClassLoader().getResourceAsStream("reference/resource_data.json"),
+ Charset.defaultCharset());
+
+ configResource.setResourceData(resourceData);
+ configResource.setServiceTemplateName("sample-name");
+ configResource.setServiceTemplateVersion("1.0.0");
+ configResource.setResourceId("123456");
+ configResource.setResourceType("vUSP - vDBE-IPX HUB");
+ configResource.setRequestId("123456");
+ configResource.setRecipeName("activate-action");
+ configResource.setTemplateName("vrr-service-template");
+ configResource.setMaskData(null);
+ configResource.setStatus("success");
+ configResource.setCreatedDate(new Date(System.currentTimeMillis()));
+ configResource.setUpdatedBy("an188a");
+
+ List<ResourceAssignmentData> resourceAssignments = new ArrayList<>();
+ ResourceAssignmentData resourceAssignmentData = new ResourceAssignmentData();
+ resourceAssignmentData.setDataType("string");
+ resourceAssignmentData.setStatus("success");
+ resourceAssignmentData.setMessage("success");
+ resourceAssignmentData.setTemplateKeyName("sample");
+ resourceAssignmentData.setResourceName("sample");
+ // resourceAssignmentData.setResourceValue("sample123");
+ resourceAssignmentData.setSource("input");
+ resourceAssignments.add(resourceAssignmentData);
+ configResource.setResourceAssignments(resourceAssignments);
+
+ // save
+ ConfigResource dbConfigResource = configResourceService.saveConfigResource(configResource);
+ Assert.assertNotNull("ConfigResource is null", dbConfigResource);
+ Assert.assertNotNull("Resource Assignment Data is null", dbConfigResource.getResourceAssignments());
+ Assert.assertEquals("Resource Assignment Data count missmatch", true,
+ dbConfigResource.getResourceAssignments().size() > 0);
+ Assert.assertEquals(configResource.getServiceTemplateVersion(), dbConfigResource.getServiceTemplateVersion());
+
+ // update
+ configResource.setServiceTemplateVersion("1.0.1");
+ dbConfigResource = configResourceService.saveConfigResource(configResource);
+ Assert.assertNotNull("ConfigResource is null", dbConfigResource);
+ Assert.assertNotNull("Resource Assignment Data is null", dbConfigResource.getResourceAssignments());
+ Assert.assertEquals("Resource Assignment Data count missmatch", true,
+ dbConfigResource.getResourceAssignments().size() > 0);
+ Assert.assertEquals(configResource.getServiceTemplateVersion(), dbConfigResource.getServiceTemplateVersion());
+
+ // find
+ ConfigResource configResourceInput = new ConfigResource();
+ configResourceInput.setResourceId(configResource.getResourceId());
+ configResourceInput.setTemplateName(configResource.getTemplateName());
+ configResourceInput.setServiceTemplateName(configResource.getServiceTemplateName());
+ configResourceInput.setServiceTemplateVersion(configResource.getServiceTemplateVersion());
+ configResourceInput.setRequestId(configResource.getRequestId());
+ configResourceInput.setRecipeName(configResource.getRecipeName());
+ configResourceInput.setResourceType(configResource.getResourceType());
+ List<ConfigResource> dbConfigResources = configResourceService.getConfigResource(configResourceInput);
+ Assert.assertNotNull("ConfigResources is null", dbConfigResources);
+ Assert.assertEquals("ConfigResources size missmatch", true, dbConfigResources.size() > 0);
+
+ for (ConfigResource dbConfigResouce : dbConfigResources) {
+ Assert.assertNotNull("ConfigResources Assignments is null", dbConfigResouce.getResourceAssignments());
+ Assert.assertTrue("ConfigResources Assignments size miss mathch ",
+ dbConfigResouce.getResourceAssignments().size() > 0);
+ }
+ }
+
+ @Test
+ public void testSaveAndGetTransactionLog() throws Exception {
+ TransactionLog transactionLog = new TransactionLog();
+ transactionLog.setMessage("message");
+ transactionLog.setMessageType("messageType");
+ transactionLog.setRequestId("requestId");
+
+ configResourceService.save(transactionLog);
+
+ List<TransactionLog> transactions =
+ configResourceService.getTransactionsByRequestId(transactionLog.getRequestId());
+ Assert.assertTrue(transactions.size() == 1);
+ transactions = configResourceService.getTransactionsByRequestId(transactionLog.getRequestId(),
+ transactionLog.getMessageType());
+ Assert.assertTrue(transactions.size() == 1);
+ }
+
+ @Test
+ public void testNamedQueryExecutorUpdateNQuery() throws Exception {
+ Map<String, Object> parameters = new HashMap<>();
+ parameters.put("config_transaction_log_id", UUID.randomUUID().toString());
+ parameters.put("request_id", "requestId123");
+ parameters.put("message_type", "messageType");
+ parameters.put("message", "message");
+ configResourceService.update(
+ "INSERT INTO CONFIG_TRANSACTION_LOG ( config_transaction_log_id, request_id, message_type, message ) VALUES (:config_transaction_log_id, :request_id, :message_type, :message) ",
+ parameters);
+
+ List<Map<String, Object>> result = configResourceService
+ .query("SELECT * FROM CONFIG_TRANSACTION_LOG WHERE request_id = :request_id", parameters);
+
+ Assert.assertTrue(!result.isEmpty());
+ Assert.assertNotNull(configResourceService.getNamedParameterJdbcTemplate());
+ }
+}
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/log4j.properties b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/log4j.properties
new file mode 100644
index 000000000..ce75592ff
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/log4j.properties
@@ -0,0 +1,5 @@
+log4j.rootLogger=INFO, A1
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} %5p %t %X{UUID} %c{3}:%L - %m%n
+log4j.logger.org.hibernate=INFO
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/mappings/service-mapping.json b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/mappings/service-mapping.json
new file mode 100644
index 000000000..e595e1613
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/mappings/service-mapping.json
@@ -0,0 +1,11 @@
+{
+ "resource": {
+ "name": "bundle-mac",
+ "searchCriteriaDefintion": {
+ "sourceSystemResourceResolution": {
+ "searchCriteriaValue": "$ptnni_equip_name",
+ "searchCriteriaType": "equipment"
+ }
+ }
+ }
+}
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/reference/resource_data.json b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/reference/resource_data.json
new file mode 100644
index 000000000..32162ecaf
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/reference/resource_data.json
@@ -0,0 +1,3 @@
+{
+ "group-name": "AG_AUTORP_NOOVERRIDE"
+}
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/sql/schema.sql b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/sql/schema.sql
new file mode 100644
index 000000000..15d22e242
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/sql/schema.sql
@@ -0,0 +1,46 @@
+
+CREATE TABLE IF NOT EXISTS CONFIG_RESOURCE (
+ config_resource_id VARCHAR(50) PRIMARY KEY,
+ resource_id VARCHAR(50) NOT NULL,
+ resource_type VARCHAR(50) NOT NULL,
+ service_template_name VARCHAR(50) NULL DEFAULT NULL,
+ service_template_version VARCHAR(50) NULL DEFAULT NULL,
+ template_name VARCHAR(50) NOT NULL,
+ recipe_name VARCHAR(50) NOT NULL,
+ request_id VARCHAR(50) NOT NULL,
+ resource_data LONGTEXT NULL DEFAULT NULL,
+ mask_data LONGTEXT NULL DEFAULT NULL,
+ created_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ status VARCHAR(20) NOT NULL,
+ updated_by VARCHAR(50) NOT NULL
+);
+
+CREATE TABLE IF NOT EXISTS CONFIG_RESOURCE_ASSIGNMENT_DATA (
+ config_resource_assignment_data_id VARCHAR(50) PRIMARY KEY,
+ config_resource_id VARCHAR(50) NOT NULL,
+ version INT(11) NOT NULL,
+ updated_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ updated_by VARCHAR(50) NOT NULL,
+ template_key_name VARCHAR(50) NOT NULL,
+ resource_name VARCHAR(50) NOT NULL,
+ data_type VARCHAR(100) NOT NULL,
+ entry_schema VARCHAR(100) NULL DEFAULT NULL,
+ resource_value LONGTEXT NOT NULL,
+ source VARCHAR(50) NOT NULL,
+ status VARCHAR(50) NOT NULL,
+ message LONGTEXT NOT NULL
+);
+
+CREATE TABLE IF NOT EXISTS CONFIG_TRANSACTION_LOG (
+ config_transaction_log_id VARCHAR(50) PRIMARY KEY,
+ request_id VARCHAR(50) NULL DEFAULT NULL,
+ message_type VARCHAR(100) NULL DEFAULT NULL,
+ creation_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ message LONGTEXT NULL DEFAULT NULL
+);
+
+CREATE TABLE IF NOT EXISTS CONFIG_PROPERTY_MAP (
+ reference_key VARCHAR(100) NOT NULL,
+ reference_value VARCHAR(250) NOT NULL
+);
+
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context-h2db.xml b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context-h2db.xml
new file mode 100644
index 000000000..5b0004c1c
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context-h2db.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright © 2017-2018 AT&T Intellectual Property.
+
+ 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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/jdbc
+ http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context-3.1.xsd">
+
+ <context:annotation-config />
+
+ <bean id="test.dataSource"
+ class="org.springframework.jdbc.datasource.DriverManagerDataSource"
+ lazy-init="false">
+ <property name="driverClassName" value="org.h2.Driver" />
+ <property name="url"
+ value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;MODE=MySQL" />
+ </bean>
+
+ <jdbc:initialize-database
+ data-source="test.dataSource">
+ <jdbc:script location="sql/schema.sql" />
+ </jdbc:initialize-database>
+
+ <bean id="jdbcTemplate"
+ class="org.springframework.jdbc.core.JdbcTemplate">
+ <property name="dataSource" ref="test.dataSource" />
+ </bean>
+
+ <bean id="namedParameterJdbcTemplate"
+ class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
+ <constructor-arg ref="test.dataSource" />
+ </bean>
+
+ <bean id="configResourceDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.ConfigResourceDaoImpl">
+ <constructor-arg ref="jdbcTemplate" />
+ </bean>
+
+ <bean id="configPropertyMapDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.ConfigPropertyMapDaoImpl">
+ <constructor-arg ref="jdbcTemplate" />
+ </bean>
+
+ <bean id="queryExecutorDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.QueryExecutorDaoImpl">
+ <constructor-arg ref="jdbcTemplate" />
+ </bean>
+
+ <bean id="namedQueryExecutorDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.NamedQueryExecutorDaoImpl">
+ <constructor-arg ref="namedParameterJdbcTemplate" />
+ </bean>
+
+ <bean id="transactionLogDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.TransactionLogDaoImpl">
+ <constructor-arg ref="jdbcTemplate" />
+ </bean>
+
+ <context:component-scan
+ base-package="org.onap.ccsdk.config.data.adaptor" />
+
+</beans>
diff --git a/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context.xml b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context.xml
new file mode 100644
index 000000000..0e73b40b3
--- /dev/null
+++ b/blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright © 2017-2018 AT&T Intellectual Property.
+
+ 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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:jdbc="http://www.springframework.org/schema/jdbc"
+ xmlns:context="http://www.springframework.org/schema/context"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+ http://www.springframework.org/schema/jdbc
+ http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context-3.1.xsd
+ ">
+
+ <context:annotation-config />
+
+ <bean id="test.dataSource"
+ class="org.springframework.jdbc.datasource.DriverManagerDataSource"
+ lazy-init="false">
+ <property name="driverClassName"
+ value="org.mariadb.jdbc.Driver" />
+ <property name="url"
+ value="jdbc:mysql://localhost:3306/sdnctl" />
+ <property name="username" value="sdnctl" />
+ <property name="password" value="sdnctl" />
+ </bean>
+
+
+ <!-- <bean id="test.dataSource" -->
+ <!-- class="org.springframework.jdbc.datasource.DriverManagerDataSource" -->
+ <!-- lazy-init="false"> -->
+ <!-- <property name="driverClassName" value="org.h2.Driver" /> -->
+ <!-- <property name="url" -->
+ <!-- value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;MODE=MySQL" /> -->
+ <!-- </bean> -->
+ <!-- <jdbc:initialize-database data-source="test.dataSource"> -->
+ <!-- <jdbc:script location="sql/schema.sql" /> -->
+ <!-- </jdbc:initialize-database> -->
+ <!-- <bean id="dataSetup" -->
+ <!-- class="org.onap.ccsdk.config.data.adaptor.db.utils.DataSetup"> -->
+ <!-- <property name="testDb" ref="testDb" /> -->
+ <!-- </bean> -->
+ <!-- <bean id="testDb" class="org.onap.ccsdk.config.data.adaptor.db.utils.TestDb"> -->
+ <!-- <property name="jdbcTemplate" ref="jdbcTemplate" /> -->
+ <!-- </bean> -->
+
+ <bean id="jdbcTemplate"
+ class="org.springframework.jdbc.core.JdbcTemplate">
+ <property name="dataSource" ref="test.dataSource" />
+ </bean>
+
+ <bean id="namedParameterJdbcTemplate"
+ class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
+ <constructor-arg ref="test.dataSource" />
+ </bean>
+
+ <bean id="configResourcelDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.ConfigResourceDaoImpl">
+ <constructor-arg ref="jdbcTemplate" />
+ </bean>
+
+ <bean id="ConfigPropertyMapDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.ConfigPropertyMapDaoImpl">
+ <constructor-arg ref="jdbcTemplate" />
+ </bean>
+
+ <bean id="queryExecutorDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.QueryExecutorDaoImpl">
+ <constructor-arg ref="jdbcTemplate" />
+ </bean>
+
+ <bean id="namedQueryExecutorDao"
+ class="org.onap.ccsdk.config.data.adaptor.dao.NamedQueryExecutorDaoImpl">
+ <constructor-arg ref="namedParameterJdbcTemplate" />
+ </bean>
+
+ <context:component-scan
+ base-package="org.onap.ccsdk.config.data.adaptor" />
+
+</beans>