From 7dc239c5f08a2fb1425054cc85d7868400aecf06 Mon Sep 17 00:00:00 2001 From: "Singal, Kapil (ks220y)" Date: Tue, 4 Sep 2018 13:19:51 -0400 Subject: 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) --- .../data/adaptor/dao/ConfigPropertyMapDaoTest.java | 48 ++++++ .../data/adaptor/dao/ConfigResourceDaoTest.java | 122 +++++++++++++ .../adaptor/dao/ConfigTransactionLogDaoTest.java | 76 +++++++++ .../data/adaptor/dao/QueryExecutorDaoTest.java | 78 +++++++++ .../adaptor/service/ConfigResourceNodeTest.java | 83 +++++++++ .../adaptor/service/ConfigResourceServiceTest.java | 189 +++++++++++++++++++++ .../src/test/resources/log4j.properties | 5 + .../test/resources/mappings/service-mapping.json | 11 ++ .../test/resources/reference/resource_data.json | 3 + .../src/test/resources/sql/schema.sql | 46 +++++ .../src/test/resources/test-context-h2db.xml | 82 +++++++++ .../src/test/resources/test-context.xml | 95 +++++++++++ 12 files changed, 838 insertions(+) create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigPropertyMapDaoTest.java create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigResourceDaoTest.java create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/ConfigTransactionLogDaoTest.java create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/dao/QueryExecutorDaoTest.java create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceNodeTest.java create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/java/org/onap/ccsdk/config/data/adaptor/service/ConfigResourceServiceTest.java create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/log4j.properties create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/mappings/service-mapping.json create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/reference/resource_data.json create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/sql/schema.sql create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context-h2db.xml create mode 100644 blueprints-processor/adaptors/data-adaptor-provider/src/test/resources/test-context.xml (limited to 'blueprints-processor/adaptors') 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 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 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 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 result = transactionLogDao.getTransactionsByRequestId(requestId); + logger.info("DB ArtifactReference :" + result); + Assert.assertNotNull("Failed to get Query Result", result); + + List 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 parameters = new HashMap<>(); + parameters.put("request_id", "12345"); + List> 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 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> 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 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 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 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 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> 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit 1.2.3-korg