diff options
8 files changed, 937 insertions, 310 deletions
diff --git a/src/test/java/org/onap/aai/sparky/dal/elasticsearch/ElasticSearchConfigTest.java b/src/test/java/org/onap/aai/sparky/dal/elasticsearch/ElasticSearchConfigTest.java index 946d570..5de9e2f 100644 --- a/src/test/java/org/onap/aai/sparky/dal/elasticsearch/ElasticSearchConfigTest.java +++ b/src/test/java/org/onap/aai/sparky/dal/elasticsearch/ElasticSearchConfigTest.java @@ -1,243 +1,277 @@ -/* -* ============LICENSE_START======================================================= -* SPARKY (AAI UI service) -* ================================================================================ -* Copyright © 2017 AT&T Intellectual Property. -* Copyright © 2017 Amdocs -* All rights reserved. -* ================================================================================ -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* ============LICENSE_END========================================================= -* -* ECOMP and OpenECOMP are trademarks -* and service marks of AT&T Intellectual Property. -*/ - -package org.onap.aai.sparky.dal.elasticsearch; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; - -import java.io.File; -import java.io.IOException; - -import javax.servlet.ServletException; - -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.mockito.Mockito; -import org.onap.aai.sparky.dal.elasticsearch.config.ElasticSearchConfig; -import org.onap.aai.sparky.dal.exception.ElasticSearchOperationException; - -import ch.qos.logback.classic.Level; - -/** - * The Class ElasticSearchConfigTest. - */ -public class ElasticSearchConfigTest { - - private static final String GOOD_MAPPINGS_FILE = - "{" + "\"properties\": {" + "\"entityType\": {" + "\"type\": \"string\"" + "}," - + "\"edgeTagQueryEntityFieldName\": {" + "\"type\": \"string\"," + "\"index\": \"no\"" - + "}," + "\"edgeTagQueryEntityFieldValue\": {" + "\"type\": \"string\"," - + "\"index\": \"no\"" + "}," + "\"searchTagIDs\" : {" + "\"type\" : \"string\"" + "}," - + "\"searchTags\": {" + "\"type\": \"string\"," + "\"analyzer\": \"nGram_analyzer\"," - + "\"search_analyzer\": \"whitespace_analyzer\"}" + "}" + "}"; - - private static final String GOOD_SETTINGS_FILE = "{\"analysis\": {" + "\"filter\": {" - + "\"nGram_filter\": {" + "\"type\": \"nGram\"," + "\"min_gram\": 1," + "\"max_gram\": 50," - + "\"token_chars\": [" + "\"letter\"," + "\"digit\"," + "\"punctuation\"," + "\"symbol\"" - + "]}}," + "\"analyzer\": {" + "\"nGram_analyzer\": {" + "\"type\": \"custom\"," - + "\"tokenizer\": \"whitespace\"," + "\"filter\": [" + "\"lowercase\"," + "\"asciifolding\"," - + "\"nGram_filter\"]}," + "\"whitespace_analyzer\": {" + "\"type\": \"custom\"," - + "\"tokenizer\": \"whitespace\"," + "\"filter\": [" + "\"lowercase\"," - + "\"asciifolding\"]}}}}"; - - private static final String BAD_SETTINGS_FILE = "{\"analysis\": {" + "\"filter\": {" - + "\"nGram_filter\": {" + "\"type\": \"nGram\"," + "\"min_gram\": 1," + "\"max_gram\": 50," - + "\"token_chars\": [" + "\"letter\"," + "\"digit\"," + "\"punctuation\"," + "\"symbol\"" - + "]}}," + "\"analyzer\": {" + "\"nGram_analyzer\": {" + "\"type\": \"custom\"," - + "\"tokenizer\": \"whitespace\"," + "\"filter\": [" + "\"lowercase\"," + "\"asciifolding\"," - + "\"nGram_filter\"]}," + "\"whitespace_analyzer\": {" + "\"type\": \"custom\"," - + "\"tokenizer\": \"whitespace\"," + "\"filter\": [" + "\"lowercase\"," - + "\"asciifolding\"]}}"; - - /** - * Inits the. - * - * @throws Exception the exception - */ - @Before - public void init() throws Exception { - } - - /** - * Validate accessors. - * - * @throws IOException Signals that an I/O exception has occurred. - * @throws ServletException the servlet exception - * @throws Exception the exception - */ - @Test - public void validateAccessors() throws IOException, ServletException, Exception { - - ElasticSearchConfig esConfig = new ElasticSearchConfig(); - - esConfig.setIpAddress("47.248.10.127"); - esConfig.setHttpPort("8123"); - esConfig.setJavaApiPort("9123"); - esConfig.setIndexName("myIndexName"); - esConfig.setType("myIndexTableType"); - esConfig.setClusterName("ES_AAI_DEV"); - esConfig.setMappingsFileName("d:\\1\\mappings.json"); - esConfig.setSettingsFileName("d:\\1\\settings.json"); - esConfig.setAuditIndexName("auditIndexName"); - - ElasticSearchConfig.setConfig(esConfig); - - assertEquals(esConfig.getIpAddress(), "47.248.10.127"); - assertEquals(esConfig.getHttpPort(), "8123"); - assertEquals(esConfig.getJavaApiPort(), "9123"); - assertEquals(esConfig.getIndexName(), "myIndexName"); - assertEquals(esConfig.getType(), "myIndexTableType"); - assertEquals(esConfig.getClusterName(), "ES_AAI_DEV"); - assertEquals(esConfig.getMappingsFileName(), "d:\\1\\mappings.json"); - assertEquals(esConfig.getSettingsFileName(), "d:\\1\\settings.json"); - assertEquals(esConfig.getAuditIndexName(), "auditIndexName"); - - String output = esConfig.toString(); - - assertNotEquals(output, null); - - } - - /** - * Gets the elastic search settings expect valid config. - * - * @return the elastic search settings expect valid config - * @throws IOException Signals that an I/O exception has occurred. - * @throws ElasticSearchOperationException the elastic search operation exception - * Need to revisit this test case and change the way this class works - */ - @Ignore - public void getElasticSearchSettings_expectValidConfig() - throws IOException, ElasticSearchOperationException { - System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/')); - - ElasticSearchConfig esConfig = new ElasticSearchConfig(); - - esConfig.setSettingsFileName("src/main/config/es_settings.json"); - - assertNotNull(esConfig.getElasticSearchSettings()); - } - - /** - * Gets the elastic search settings expect file not found exception. - * - * @return the elastic search settings expect file not found exception - * @throws IOException Signals that an I/O exception has occurred. - * @throws ElasticSearchOperationException the elastic search operation exception - * - * Need to revisit this test case and change the way this class works - */ - @Ignore - public void getElasticSearchSettings_expectFileNotFoundException() - throws IOException, ElasticSearchOperationException { - System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/')); - - ElasticSearchConfig esConfig = new ElasticSearchConfig(); - - esConfig.setSettingsFileName("src/main/config/es_setting.json"); - - esConfig.getElasticSearchSettings(); - - } - - /** - * Gets the elastic search mappings expect valid config. - * - * @return the elastic search mappings expect valid config - * @throws IOException Signals that an I/O exception has occurred. - * @throws ElasticSearchOperationException the elastic search operation exception - * - * Need to revisit this test case and change the way this class works - */ - @Ignore - public void getElasticSearchMappings_expectValidConfig() - throws IOException, ElasticSearchOperationException { - System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/')); - - ElasticSearchConfig esConfig = new ElasticSearchConfig(); - - esConfig.setMappingsFileName("src/main/config/es_mappings.json"); - - assertNotNull(esConfig.getElasticSearchMappings()); - } - - /** - * Gets the elastic search mappings expect file not found exception. - * - * @return the elastic search mappings expect file not found exception - * @throws IOException Signals that an I/O exception has occurred. - * @throws ElasticSearchOperationException the elastic search operation exception - */ - @Test(expected = ElasticSearchOperationException.class) - public void getElasticSearchMappings_expectFileNotFoundException() - throws IOException, ElasticSearchOperationException { - System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/')); - - ElasticSearchConfig esConfig = new ElasticSearchConfig(); - - esConfig.setSettingsFileName("src/main/config/es_setting.json"); - - esConfig.getElasticSearchMappings(); - - } - - /** - * Builds the elastic search table config expect valid result. - * - * @throws ElasticSearchOperationException the elastic search operation exception - * @throws IOException Signals that an I/O exception has occurred. - */ - @Test - public void buildElasticSearchTableConfig_expectValidResult() - throws ElasticSearchOperationException, IOException { - ElasticSearchConfig spyEsConfig = Mockito.spy(new ElasticSearchConfig()); - Mockito.doReturn(GOOD_MAPPINGS_FILE).when(spyEsConfig).getElasticSearchMappings(); - Mockito.doReturn(GOOD_SETTINGS_FILE).when(spyEsConfig).getElasticSearchSettings(); - Mockito.doReturn("myIndexTableType").when(spyEsConfig).getType(); - - assertNotNull(spyEsConfig.buildElasticSearchTableConfig()); - } - - /** - * Builds the elastic search table config expect exception. - * - * @throws ElasticSearchOperationException the elastic search operation exception - * @throws IOException Signals that an I/O exception has occurred. - */ - @Test(expected = ElasticSearchOperationException.class) - public void buildElasticSearchTableConfig_expectException() - throws ElasticSearchOperationException, IOException { - ElasticSearchConfig spyEsConfig = Mockito.spy(new ElasticSearchConfig()); - Mockito.doReturn(GOOD_MAPPINGS_FILE).when(spyEsConfig).getElasticSearchMappings(); - Mockito.doReturn(BAD_SETTINGS_FILE).when(spyEsConfig).getElasticSearchSettings(); - Mockito.doReturn("myIndexTableType").when(spyEsConfig).getType(); - - spyEsConfig.buildElasticSearchTableConfig(); - } - -} +/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+
+package org.onap.aai.sparky.dal.elasticsearch;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.aai.sparky.dal.elasticsearch.config.ElasticSearchConfig;
+import org.onap.aai.sparky.dal.exception.ElasticSearchOperationException;
+
+import ch.qos.logback.classic.Level;
+
+/**
+ * The Class ElasticSearchConfigTest.
+ */
+public class ElasticSearchConfigTest {
+
+ private static final String GOOD_MAPPINGS_FILE =
+ "{" + "\"properties\": {" + "\"entityType\": {" + "\"type\": \"string\"" + "},"
+ + "\"edgeTagQueryEntityFieldName\": {" + "\"type\": \"string\"," + "\"index\": \"no\""
+ + "}," + "\"edgeTagQueryEntityFieldValue\": {" + "\"type\": \"string\","
+ + "\"index\": \"no\"" + "}," + "\"searchTagIDs\" : {" + "\"type\" : \"string\"" + "},"
+ + "\"searchTags\": {" + "\"type\": \"string\"," + "\"analyzer\": \"nGram_analyzer\","
+ + "\"search_analyzer\": \"whitespace_analyzer\"}" + "}" + "}";
+
+ private static final String GOOD_SETTINGS_FILE = "{\"analysis\": {" + "\"filter\": {"
+ + "\"nGram_filter\": {" + "\"type\": \"nGram\"," + "\"min_gram\": 1," + "\"max_gram\": 50,"
+ + "\"token_chars\": [" + "\"letter\"," + "\"digit\"," + "\"punctuation\"," + "\"symbol\""
+ + "]}}," + "\"analyzer\": {" + "\"nGram_analyzer\": {" + "\"type\": \"custom\","
+ + "\"tokenizer\": \"whitespace\"," + "\"filter\": [" + "\"lowercase\"," + "\"asciifolding\","
+ + "\"nGram_filter\"]}," + "\"whitespace_analyzer\": {" + "\"type\": \"custom\","
+ + "\"tokenizer\": \"whitespace\"," + "\"filter\": [" + "\"lowercase\","
+ + "\"asciifolding\"]}}}}";
+
+ private static final String BAD_SETTINGS_FILE = "{\"analysis\": {" + "\"filter\": {"
+ + "\"nGram_filter\": {" + "\"type\": \"nGram\"," + "\"min_gram\": 1," + "\"max_gram\": 50,"
+ + "\"token_chars\": [" + "\"letter\"," + "\"digit\"," + "\"punctuation\"," + "\"symbol\""
+ + "]}}," + "\"analyzer\": {" + "\"nGram_analyzer\": {" + "\"type\": \"custom\","
+ + "\"tokenizer\": \"whitespace\"," + "\"filter\": [" + "\"lowercase\"," + "\"asciifolding\","
+ + "\"nGram_filter\"]}," + "\"whitespace_analyzer\": {" + "\"type\": \"custom\","
+ + "\"tokenizer\": \"whitespace\"," + "\"filter\": [" + "\"lowercase\","
+ + "\"asciifolding\"]}}";
+
+ ElasticSearchConfig elasticSearchConfig;
+
+ /**
+ * Inits the.
+ *
+ * @throws Exception the exception
+ */
+ @Before
+ public void init() throws Exception {
+ elasticSearchConfig = Mockito.spy(new ElasticSearchConfig());
+ }
+
+ /**
+ * Validate accessors.
+ *
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws ServletException the servlet exception
+ * @throws Exception the exception
+ */
+ @Test
+ public void validateAccessors() throws IOException, ServletException, Exception {
+
+ ElasticSearchConfig esConfig = new ElasticSearchConfig();
+
+ esConfig.setIpAddress("47.248.10.127");
+ esConfig.setHttpPort("8123");
+ esConfig.setJavaApiPort("9123");
+ esConfig.setIndexName("myIndexName");
+ esConfig.setType("myIndexTableType");
+ esConfig.setClusterName("ES_AAI_DEV");
+ esConfig.setMappingsFileName("d:\\1\\mappings.json");
+ esConfig.setSettingsFileName("d:\\1\\settings.json");
+ esConfig.setAuditIndexName("auditIndexName");
+
+ ElasticSearchConfig.setConfig(esConfig);
+
+ assertEquals(esConfig.getIpAddress(), "47.248.10.127");
+ assertEquals(esConfig.getHttpPort(), "8123");
+ assertEquals(esConfig.getJavaApiPort(), "9123");
+ assertEquals(esConfig.getIndexName(), "myIndexName");
+ assertEquals(esConfig.getType(), "myIndexTableType");
+ assertEquals(esConfig.getClusterName(), "ES_AAI_DEV");
+ assertEquals(esConfig.getMappingsFileName(), "d:\\1\\mappings.json");
+ assertEquals(esConfig.getSettingsFileName(), "d:\\1\\settings.json");
+ assertEquals(esConfig.getAuditIndexName(), "auditIndexName");
+
+ String output = esConfig.toString();
+
+ assertNotEquals(output, null);
+
+ }
+
+ /**
+ * Gets the elastic search settings expect valid config.
+ *
+ * @return the elastic search settings expect valid config
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws ElasticSearchOperationException the elastic search operation exception
+ * Need to revisit this test case and change the way this class works
+ */
+ @Ignore
+ public void getElasticSearchSettings_expectValidConfig()
+ throws IOException, ElasticSearchOperationException {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+
+ ElasticSearchConfig esConfig = new ElasticSearchConfig();
+
+ esConfig.setSettingsFileName("src/main/config/es_settings.json");
+
+ assertNotNull(esConfig.getElasticSearchSettings());
+ }
+
+ /**
+ * Gets the elastic search settings expect file not found exception.
+ *
+ * @return the elastic search settings expect file not found exception
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws ElasticSearchOperationException the elastic search operation exception
+ *
+ * Need to revisit this test case and change the way this class works
+ */
+ @Ignore
+ public void getElasticSearchSettings_expectFileNotFoundException()
+ throws IOException, ElasticSearchOperationException {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+
+ ElasticSearchConfig esConfig = new ElasticSearchConfig();
+
+ esConfig.setSettingsFileName("src/main/config/es_setting.json");
+
+ esConfig.getElasticSearchSettings();
+
+ }
+
+ /**
+ * Gets the elastic search mappings expect valid config.
+ *
+ * @return the elastic search mappings expect valid config
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws ElasticSearchOperationException the elastic search operation exception
+ *
+ * Need to revisit this test case and change the way this class works
+ */
+ @Ignore
+ public void getElasticSearchMappings_expectValidConfig()
+ throws IOException, ElasticSearchOperationException {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+
+ ElasticSearchConfig esConfig = new ElasticSearchConfig();
+
+ esConfig.setMappingsFileName("src/main/config/es_mappings.json");
+
+ assertNotNull(esConfig.getElasticSearchMappings());
+ }
+
+ /**
+ * Gets the elastic search mappings expect file not found exception.
+ *
+ * @return the elastic search mappings expect file not found exception
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws ElasticSearchOperationException the elastic search operation exception
+ */
+ @Test(expected = ElasticSearchOperationException.class)
+ public void getElasticSearchMappings_expectFileNotFoundException()
+ throws IOException, ElasticSearchOperationException {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+
+ ElasticSearchConfig esConfig = new ElasticSearchConfig();
+
+ esConfig.setSettingsFileName("src/main/config/es_setting.json");
+
+ esConfig.getElasticSearchMappings();
+
+ }
+
+ /**
+ * Builds the elastic search table config expect valid result.
+ *
+ * @throws ElasticSearchOperationException the elastic search operation exception
+ * @throws IOException Signals that an I/O exception has occurred.
+ */
+ @Test
+ public void buildElasticSearchTableConfig_expectValidResult()
+ throws ElasticSearchOperationException, IOException {
+ ElasticSearchConfig spyEsConfig = Mockito.spy(new ElasticSearchConfig());
+ Mockito.doReturn(GOOD_MAPPINGS_FILE).when(spyEsConfig).getElasticSearchMappings();
+ Mockito.doReturn(GOOD_SETTINGS_FILE).when(spyEsConfig).getElasticSearchSettings();
+ Mockito.doReturn("myIndexTableType").when(spyEsConfig).getType();
+
+ assertNotNull(spyEsConfig.buildElasticSearchTableConfig());
+ }
+
+ /**
+ * Builds the elastic search table config expect exception.
+ *
+ * @throws ElasticSearchOperationException the elastic search operation exception
+ * @throws IOException Signals that an I/O exception has occurred.
+ */
+ @Test(expected = ElasticSearchOperationException.class)
+ public void buildElasticSearchTableConfig_expectException()
+ throws ElasticSearchOperationException, IOException {
+ ElasticSearchConfig spyEsConfig = Mockito.spy(new ElasticSearchConfig());
+ Mockito.doReturn(GOOD_MAPPINGS_FILE).when(spyEsConfig).getElasticSearchMappings();
+ Mockito.doReturn(BAD_SETTINGS_FILE).when(spyEsConfig).getElasticSearchSettings();
+ Mockito.doReturn("myIndexTableType").when(spyEsConfig).getType();
+
+ spyEsConfig.buildElasticSearchTableConfig();
+ }
+
+ @Test
+ public void testGetFullUrl_ThreeParams() throws Exception {
+ Mockito.when(elasticSearchConfig.getIpAddress()).thenReturn("http://localhost");
+ Mockito.when(elasticSearchConfig.getHttpPort()).thenReturn("5443");
+ String fullUrl = elasticSearchConfig.getElasticFullUrl("http://localhost:5443/aai/model/index", "entity-index", "entity");
+ Assert.assertNotNull(fullUrl);
+ }
+
+ @Test
+ public void testGetFullUrl_OneParam() throws Exception {
+ Mockito.when(elasticSearchConfig.getIpAddress()).thenReturn("http://localhost");
+ Mockito.when(elasticSearchConfig.getHttpPort()).thenReturn("5443");
+ Mockito.when(elasticSearchConfig.getIndexName()).thenReturn("entity");
+ String fullUrl = elasticSearchConfig.getElasticFullUrl("http://localhost:5443/aai/model/index");
+ Assert.assertNotNull(fullUrl);
+ }
+
+ @Test
+ public void testGetBulkUrl() throws Exception {
+ Mockito.when(elasticSearchConfig.getIpAddress()).thenReturn("http://localhost");
+ Mockito.when(elasticSearchConfig.getHttpPort()).thenReturn("5443");
+ String fullUrl = elasticSearchConfig.getBulkUrl();
+ Assert.assertNotNull(fullUrl);
+ }
+
+ @Test
+ public void testGetConfigAsString() throws IOException, ElasticSearchOperationException {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+ String retStr = elasticSearchConfig.getConfigAsString("item-1", System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/roles.config");
+ Assert.assertNotNull(retStr);
+ }
+
+}
diff --git a/src/test/java/org/onap/aai/sparky/search/VnfSearchQueryBuilderTest.java b/src/test/java/org/onap/aai/sparky/search/VnfSearchQueryBuilderTest.java new file mode 100644 index 0000000..19a0a3a --- /dev/null +++ b/src/test/java/org/onap/aai/sparky/search/VnfSearchQueryBuilderTest.java @@ -0,0 +1,75 @@ +/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.aai.sparky.search;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.json.JsonArray;
+import javax.json.JsonObject;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.onap.aai.sparky.search.VnfSearchQueryBuilder;
+
+public class VnfSearchQueryBuilderTest {
+
+ @Test
+ public void testCreateSuggestionsQuery() {
+ String maxResults = "maxResults-1";
+ String queryStr = "queryStr-1";
+ JsonObject object = VnfSearchQueryBuilder.createSuggestionsQuery(maxResults, queryStr);
+ Assert.assertNotNull(object);
+ }
+
+ @Test
+ public void testSortCriteria() {
+ JsonArray array = VnfSearchQueryBuilder.getSortCriteria("field-1", "sortOrder-1");
+ Assert.assertNotNull(array);
+ }
+
+ @Test
+ public void testCreateEntityCountsQuery_SingleAttribute() {
+ Map<String, String> attributes = new HashMap<>();
+ attributes.put("key-1", "value-1");
+ JsonObject object = VnfSearchQueryBuilder.createEntityCountsQuery(attributes);
+ Assert.assertNotNull(object);
+ }
+
+ @Test
+ public void testCreateSummaryByEntityTypeQuery_Single() {
+ Map<String, String> attributes = new HashMap<>();
+ attributes.put("key-1", "value-1");
+ JsonObject object = VnfSearchQueryBuilder.createSummaryByEntityTypeQuery(attributes, "groupkey-1");
+ Assert.assertNotNull(object);
+ }
+
+ @Test
+ public void testCreateSummaryByEntityTypeQuery_Multiple() {
+ Map<String, String> attributes = new HashMap<>();
+ attributes.put("key-1", "value-1");
+ attributes.put("key-2", "value-2");
+ JsonObject object = VnfSearchQueryBuilder.createSummaryByEntityTypeQuery(attributes, "groupkey-1");
+ Assert.assertNotNull(object);
+ }
+}
diff --git a/src/test/java/org/onap/aai/sparky/search/VnfSearchServiceTest.java b/src/test/java/org/onap/aai/sparky/search/VnfSearchServiceTest.java new file mode 100644 index 0000000..8c4d59d --- /dev/null +++ b/src/test/java/org/onap/aai/sparky/search/VnfSearchServiceTest.java @@ -0,0 +1,89 @@ +/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.aai.sparky.search;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.aai.sparky.dal.elasticsearch.SearchAdapter;
+import org.onap.aai.sparky.dal.elasticsearch.config.ElasticSearchConfig;
+import org.onap.aai.sparky.dal.rest.OperationResult;
+import org.onap.aai.sparky.viewandinspect.config.TierSupportUiConstants;
+import org.onap.aai.sparky.viewandinspect.entity.QuerySearchEntity;
+
+public class VnfSearchServiceTest {
+
+ VnfSearchService searchService;
+
+ @Before
+ public void init() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, IOException {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+ TierSupportUiConstants.DYNAMIC_CONFIG_APP_LOCATION = System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/";
+ ElasticSearchConfig.setConfig(null);
+ setFinalStatic();
+ searchService = new VnfSearchService();
+ }
+ @Test
+ public void testSetZeroCountResponse() throws IOException {
+ HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
+ Mockito.doNothing().when(response).setStatus(1);
+ Mockito.doNothing().when(response).setContentType(Mockito.anyString());
+ PrintWriter writer = Mockito.mock(PrintWriter.class);
+ Mockito.doNothing().when(writer).println(Mockito.anyString());
+ Mockito.doNothing().when(writer).close();
+ Mockito.when(response.getWriter()).thenReturn(writer);
+ searchService.setZeroCountResponse(response);
+ }
+
+ @Test
+ public void testSetEmptyAggResponse() throws IOException {
+ HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
+ Mockito.doNothing().when(response).setStatus(1);
+ Mockito.doNothing().when(response).setContentType(Mockito.anyString());
+ PrintWriter writer = Mockito.mock(PrintWriter.class);
+ Mockito.doNothing().when(writer).println(Mockito.anyString());
+ Mockito.doNothing().when(writer).close();
+ Mockito.when(response.getWriter()).thenReturn(writer);
+ searchService.setEmptyAggResponse(response);
+ }
+
+
+ static void setFinalStatic() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+ Field configField = ElasticSearchConfig.class.getDeclaredField("CONFIG_FILE");
+ configField.setAccessible(true);
+
+ Field modifiersField = Field.class.getDeclaredField( "modifiers" );
+ modifiersField.setAccessible( true );
+ modifiersField.setInt( configField, configField.getModifiers() & ~Modifier.FINAL );
+
+ configField.set(null, System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/elasticsearch.properties");
+ }
+}
diff --git a/src/test/java/org/onap/aai/sparky/synchronizer/AggregationSuggestionSynchronizerTest.java b/src/test/java/org/onap/aai/sparky/synchronizer/AggregationSuggestionSynchronizerTest.java new file mode 100644 index 0000000..e590af6 --- /dev/null +++ b/src/test/java/org/onap/aai/sparky/synchronizer/AggregationSuggestionSynchronizerTest.java @@ -0,0 +1,86 @@ +/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.aai.sparky.synchronizer;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.aai.sparky.dal.NetworkTransaction;
+import org.onap.aai.sparky.dal.elasticsearch.config.ElasticSearchConfig;
+import org.onap.aai.sparky.dal.rest.HttpMethod;
+import org.onap.aai.sparky.dal.rest.OperationResult;
+import org.onap.aai.sparky.synchronizer.enumeration.OperationState;
+import org.onap.aai.sparky.synchronizer.enumeration.SynchronizerState;
+import org.onap.aai.sparky.viewandinspect.config.TierSupportUiConstants;
+
+public class AggregationSuggestionSynchronizerTest {
+
+ @Before
+ public void init() throws IOException {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+ TierSupportUiConstants.DYNAMIC_CONFIG_APP_LOCATION = System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/";
+ // TierSupportUiConstants.CONFIG_OXM_LOCATION = System.getProperty("AJSC_HOME")+"/bundleconfig-local/oxm/";
+ }
+
+ @Test
+ public void testDoSync() throws Exception {
+ ElasticSearchConfig.setConfig(null);
+ setFinalStatic();
+ AggregationSuggestionSynchronizer ass = new AggregationSuggestionSynchronizer("entity-search-index");
+ Assert.assertNotNull(ass);
+ OperationState state = ass.doSync();
+ Assert.assertEquals(OperationState.OK, state);
+
+ OperationResult result = new OperationResult();
+ result.setResultCode(200);
+ result.setResult("result-1");
+ result.setNumRequestRetries(1);
+ NetworkTransaction ntwTxn = new NetworkTransaction(HttpMethod.GET, "entity-1", result);
+ ass.updateElasticSearchCounters(ntwTxn);
+
+ SynchronizerState syncState = ass.getState();
+ Assert.assertEquals(SynchronizerState.IDLE, syncState);
+
+ String statReport = ass.getStatReport(true);
+ Assert.assertNotNull(statReport);
+ Assert.assertTrue(statReport.contains("Aggregation Suggestion Synchronizer"));
+
+ ass.shutdown();
+ }
+
+ static void setFinalStatic() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+ Field configField = ElasticSearchConfig.class.getDeclaredField("CONFIG_FILE");
+ configField.setAccessible(true);
+
+ Field modifiersField = Field.class.getDeclaredField( "modifiers" );
+ modifiersField.setAccessible( true );
+ modifiersField.setInt( configField, configField.getModifiers() & ~Modifier.FINAL );
+
+ configField.set(null, System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/elasticsearch.properties");
+ }
+}
diff --git a/src/test/java/org/onap/aai/sparky/synchronizer/SyncControllerTest.java b/src/test/java/org/onap/aai/sparky/synchronizer/SyncControllerTest.java new file mode 100644 index 0000000..c7464d3 --- /dev/null +++ b/src/test/java/org/onap/aai/sparky/synchronizer/SyncControllerTest.java @@ -0,0 +1,81 @@ +/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.aai.sparky.synchronizer;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.onap.aai.sparky.synchronizer.SyncController.SyncActions;
+
+public class SyncControllerTest {
+
+ SyncController controller;
+
+ @Before
+ public void init() throws Exception {
+ controller = new SyncController("name-1");
+ }
+ @Test
+ public void testPerformAction_PreSync() {
+ controller.performAction(SyncActions.SYNCHRONIZE);
+ controller.shutdown();
+ }
+
+ @Test
+ public void testRegisterIndexCleaner_NullIndexName() {
+ IndexCleaner cleaner = new ElasticSearchIndexCleaner(null, null, "index_type-1", "host-1", "port-1", 1, 1);
+ controller.registerIndexCleaner(cleaner);
+ }
+
+ @Test
+ public void testRegisterIndexCleaner_NotNullIndexName() {
+ IndexCleaner cleaner = new ElasticSearchIndexCleaner(null, "index-1", "index_type-1", "host-1", "port-1", 1, 1);
+ controller.registerIndexCleaner(cleaner);
+ }
+
+ @Test
+ public void testRegisterIndexValidator_NullIndexValidator() {
+ IndexValidator validator = new IndexIntegrityValidator(null, null, "index_type-1", "host-1", "port-1", "json-1");
+ controller.registerIndexValidator(validator);
+ }
+
+ @Test
+ public void testRegisterIndexValidator_NotNullIndexValidator() {
+ IndexValidator validator = new IndexIntegrityValidator(null, "index-1", "index_type-1", "host-1", "port-1", "json-1");
+ controller.registerIndexValidator(validator);
+ }
+
+ @Test
+ public void testRegisterEntitySynchronizer_NullEntitySynchronizer() throws Exception {
+ IndexSynchronizer synchroniser = Mockito.mock(SearchableEntitySynchronizer.class);
+ Mockito.when(synchroniser.getIndexName()).thenReturn(null);
+ controller.registerEntitySynchronizer(synchroniser);
+ }
+
+ @Test
+ public void testRegisterEntitySynchronizer_NotNullEntitySynchronizer() throws Exception {
+ IndexSynchronizer synchroniser = Mockito.mock(SearchableEntitySynchronizer.class);
+ Mockito.when(synchroniser.getIndexName()).thenReturn("entity-1");
+ controller.registerEntitySynchronizer(synchroniser);
+ }
+}
diff --git a/src/test/java/org/onap/aai/sparky/synchronizer/SyncHelperTest.java b/src/test/java/org/onap/aai/sparky/synchronizer/SyncHelperTest.java index 460bdf0..5a2584f 100644 --- a/src/test/java/org/onap/aai/sparky/synchronizer/SyncHelperTest.java +++ b/src/test/java/org/onap/aai/sparky/synchronizer/SyncHelperTest.java @@ -1,67 +1,118 @@ -package org.onap.aai.sparky.synchronizer; - -import static org.junit.Assert.assertEquals; - -import java.io.File; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.TimeZone; - -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.runners.MockitoJUnitRunner; -import org.onap.aai.sparky.config.oxm.OxmModelLoader; -import org.onap.aai.sparky.synchronizer.config.SynchronizerConstants; -import org.onap.aai.sparky.viewandinspect.config.TierSupportUiConstants; - -@RunWith(MockitoJUnitRunner.class) -public class SyncHelperTest { - - private SyncHelper syncHelper; - - @BeforeClass - public static void initBeforeClass() throws IOException { - String configHomePath = - (new File(".").getCanonicalPath() + "/src/test/resources/appconfig/").replace('\\', '/'); - TierSupportUiConstants.AJSC_HOME = configHomePath; - TierSupportUiConstants.CONFIG_HOME = configHomePath; - TierSupportUiConstants.DYNAMIC_CONFIG_APP_LOCATION = configHomePath; - } - - - @Test - public void testGetOxmModelLoader() throws Exception { - syncHelper = new SyncHelper(new OxmModelLoader()); - OxmModelLoader oxmLoader = new OxmModelLoader(); - syncHelper.setOxmModelLoader(oxmLoader); - assertEquals(oxmLoader, syncHelper.getOxmModelLoader()); - } - - @Test - public void testGetFirstSyncTime(){ - SyncHelper syncHelper = new SyncHelper(new OxmModelLoader()); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); - TimeZone tz = TimeZone.getTimeZone("05:00:00 GMT+00:00"); - Calendar calendar = Calendar.getInstance(tz); - sdf.setTimeZone(tz); - - calendar.set(Calendar.HOUR_OF_DAY, 1); - calendar.set(Calendar.MINUTE, 1); - calendar.set(Calendar.SECOND, 1); - - long timeCurrent = calendar.getTimeInMillis(); - int taskFrequencyInDay = 2; - - assertEquals(calendar.getTimeInMillis(), syncHelper.getFirstSyncTime(calendar, timeCurrent, taskFrequencyInDay)); - taskFrequencyInDay = 0; - assertEquals(SynchronizerConstants.DELAY_NO_PERIODIC_SYNC_IN_MS, syncHelper.getFirstSyncTime(calendar, timeCurrent, taskFrequencyInDay)); - timeCurrent = timeCurrent + 100; - taskFrequencyInDay = 2; - Calendar expCalendar = calendar; - expCalendar.add(Calendar.DAY_OF_MONTH, taskFrequencyInDay); - //assertEquals(expCalendar.getTimeInMillis(), syncHelper.getFirstSyncTime(calendar, calendar.getTimeInMillis() + 100, taskFrequencyInDay)); - - } -} +/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.aai.sparky.synchronizer;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.TimeZone;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.aai.sparky.config.oxm.OxmModelLoader;
+import org.onap.aai.sparky.dal.elasticsearch.config.ElasticSearchConfig;
+import org.onap.aai.sparky.synchronizer.config.SynchronizerConfiguration;
+import org.onap.aai.sparky.synchronizer.config.SynchronizerConstants;
+import org.onap.aai.sparky.viewandinspect.config.TierSupportUiConstants;
+
+@RunWith(MockitoJUnitRunner.class)
+public class SyncHelperTest {
+
+ private SyncHelper syncHelper;
+
+ @BeforeClass
+ public static void initBeforeClass() throws IOException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+ String configHomePath =
+ (new File(".").getCanonicalPath() + "/src/test/resources/appconfig/").replace('\\', '/');
+ TierSupportUiConstants.AJSC_HOME = configHomePath;
+ TierSupportUiConstants.CONFIG_HOME = configHomePath;
+ TierSupportUiConstants.DYNAMIC_CONFIG_APP_LOCATION = configHomePath;
+ ElasticSearchConfig.setConfig(null);
+ SynchronizerConfiguration.setInstance(null);
+ setFinalStatic();
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+ TierSupportUiConstants.DYNAMIC_CONFIG_APP_LOCATION = System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/";
+ }
+
+
+ @Test
+ public void testGetOxmModelLoader() throws Exception {
+ syncHelper = new SyncHelper(new OxmModelLoader());
+ OxmModelLoader oxmLoader = new OxmModelLoader();
+ syncHelper.setOxmModelLoader(oxmLoader);
+ assertEquals(oxmLoader, syncHelper.getOxmModelLoader());
+ }
+
+ @Test
+ public void testGetFirstSyncTime(){
+ SyncHelper syncHelper = new SyncHelper(new OxmModelLoader());
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
+ TimeZone tz = TimeZone.getTimeZone("05:00:00 GMT+00:00");
+ Calendar calendar = Calendar.getInstance(tz);
+ sdf.setTimeZone(tz);
+
+ calendar.set(Calendar.HOUR_OF_DAY, 1);
+ calendar.set(Calendar.MINUTE, 1);
+ calendar.set(Calendar.SECOND, 1);
+
+ long timeCurrent = calendar.getTimeInMillis();
+ int taskFrequencyInDay = 2;
+
+ assertEquals(calendar.getTimeInMillis(), syncHelper.getFirstSyncTime(calendar, timeCurrent, taskFrequencyInDay));
+ taskFrequencyInDay = 0;
+ assertEquals(SynchronizerConstants.DELAY_NO_PERIODIC_SYNC_IN_MS, syncHelper.getFirstSyncTime(calendar, timeCurrent, taskFrequencyInDay));
+ timeCurrent = timeCurrent + 100;
+ taskFrequencyInDay = 2;
+ Calendar expCalendar = calendar;
+ expCalendar.add(Calendar.DAY_OF_MONTH, taskFrequencyInDay);
+ //assertEquals(expCalendar.getTimeInMillis(), syncHelper.getFirstSyncTime(calendar, calendar.getTimeInMillis() + 100, taskFrequencyInDay));
+
+ }
+
+ static void setFinalStatic() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
+ Field configField = ElasticSearchConfig.class.getDeclaredField("CONFIG_FILE");
+ configField.setAccessible(true);
+
+ Field modifiersField = Field.class.getDeclaredField( "modifiers" );
+ modifiersField.setAccessible( true );
+ modifiersField.setInt( configField, configField.getModifiers() & ~Modifier.FINAL );
+
+ configField.set(null, System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/elasticsearch.properties");
+
+ Field syncField = SynchronizerConfiguration.class.getDeclaredField("CONFIG_FILE");
+ syncField.setAccessible(true);
+
+ Field syncModifiersField = Field.class.getDeclaredField( "modifiers" );
+ syncModifiersField.setAccessible( true );
+ syncModifiersField.setInt( syncField, syncField.getModifiers() & ~Modifier.FINAL );
+
+ syncField.set(null, System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/synchronizer.properties");
+ }
+}
diff --git a/src/test/java/org/onap/aai/sparky/util/KeystoreBuilderTest.java b/src/test/java/org/onap/aai/sparky/util/KeystoreBuilderTest.java new file mode 100644 index 0000000..aadaff9 --- /dev/null +++ b/src/test/java/org/onap/aai/sparky/util/KeystoreBuilderTest.java @@ -0,0 +1,100 @@ +/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.aai.sparky.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.UnknownHostException;
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.mockito.Matchers;
+import org.mockito.Mockito;
+
+public class KeystoreBuilderTest {
+
+ @Rule
+ public TemporaryFolder folder = new TemporaryFolder();
+
+ KeystoreBuilder ksb;
+ org.onap.aai.sparky.util.test.KeystoreBuilder ksb1;
+
+ @Before
+ public void setUp() throws IOException, NoSuchAlgorithmException {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+
+ folder.newFile("file1.xml");
+ folder.newFile("file2.xml");
+
+ String endPointList = "https://localhost:9517;https://localhost:8443";
+ ksb = new KeystoreBuilder(endPointList);
+ ksb1 = new org.onap.aai.sparky.util.test.KeystoreBuilder(endPointList);
+ }
+
+ @Test(expected=IOException.class)
+ public void testUpdateKeyStore() throws KeyManagementException, KeyStoreException, CertificateException, IOException, NoSuchAlgorithmException {
+ ksb.updateKeystore(folder.getRoot().getAbsolutePath(), "password-1");
+ ksb1.updateKeystore(folder.getRoot().getAbsolutePath(), "password-1");
+ }
+
+ @Test(expected=InvocationTargetException.class)
+ public void testCertificateChainMethods() throws NoSuchMethodException, SecurityException,
+ IllegalAccessException, IllegalArgumentException, InvocationTargetException, UnknownHostException, IOException {
+ SSLSocketFactory factory = Mockito.mock(SSLSocketFactory.class);
+ SSLSocket socket = Mockito.mock(SSLSocket.class);
+ Mockito.when(factory.createSocket("localhost",9517)).thenReturn(socket);
+ Method method = KeystoreBuilder.class.getDeclaredMethod("getCertificateChainForRemoteEndpoint", String.class, int.class);
+ method.setAccessible(true);
+ X509Certificate[] certChain = (X509Certificate[])method.invoke(ksb, "localhost",9517);
+ Assert.assertNotNull(certChain);
+ }
+
+ @Test(expected=InvocationTargetException.class)
+ public void testCertificateChainMethods1() throws NoSuchMethodException, SecurityException,
+ IllegalAccessException, IllegalArgumentException, InvocationTargetException, UnknownHostException, IOException {
+ SSLSocketFactory factory = Mockito.mock(SSLSocketFactory.class);
+ SSLSocket socket = Mockito.mock(SSLSocket.class);
+ Mockito.when(factory.createSocket("localhost",9517)).thenReturn(socket);
+ Method method = org.onap.aai.sparky.util.test.KeystoreBuilder.class.getDeclaredMethod("getCertificateChainForRemoteEndpoint", String.class, int.class);
+ method.setAccessible(true);
+ X509Certificate[] certChain = (X509Certificate[])method.invoke(ksb1, "localhost",9517);
+ Assert.assertNotNull(certChain);
+ }
+
+}
diff --git a/src/test/java/org/onap/aai/sparky/viewandinspect/services/VisualizationServiceTest.java b/src/test/java/org/onap/aai/sparky/viewandinspect/services/VisualizationServiceTest.java new file mode 100644 index 0000000..72ea1ed --- /dev/null +++ b/src/test/java/org/onap/aai/sparky/viewandinspect/services/VisualizationServiceTest.java @@ -0,0 +1,111 @@ +/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017 Amdocs
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ */
+package org.onap.aai.sparky.viewandinspect.services;
+
+import java.io.File;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.aai.sparky.config.oxm.OxmModelLoader;
+import org.onap.aai.sparky.viewandinspect.config.TierSupportUiConstants;
+import org.onap.aai.sparky.viewandinspect.entity.QueryRequest;
+
+public class VisualizationServiceTest {
+
+ VisualizationService service;
+
+ @Before
+ public void init() throws Exception {
+ System.setProperty("AJSC_HOME", new File(".").getCanonicalPath().replace('\\', '/'));
+ TierSupportUiConstants.DYNAMIC_CONFIG_APP_LOCATION = System.getProperty("AJSC_HOME")+"/src/test/resources/appconfig/";
+ //TierSupportUiConstants.CONFIG_OXM_LOCATION = System.getProperty("AJSC_HOME")+"/bundleconfig-local/oxm/";
+ TierSupportUiConstants.STATIC_CONFIG_APP_LOCATION = System.getProperty("AJSC_HOME")+"/bundleconfig-local/etc/appprops";
+ OxmModelLoader loader = OxmModelLoader.getInstance();
+ service = new VisualizationService(loader);
+ }
+
+ @Test
+ public void testAnalyzeQueryRequestBody_InvalidQuery() {
+ QueryRequest request = service.analyzeQueryRequestBody("query-json-1");
+ Assert.assertNull(request);
+ }
+
+ @Test
+ public void testAnalyzeQueryRequestBody_ValidQuery() {
+ QueryRequest request = service.analyzeQueryRequestBody("{\"hashId\":\"hashid-1\"}");
+ Assert.assertNotNull(request);
+ }
+ @Test
+ public void testBuildVisualizationUsingGenericQuery_UnsuccessfulOperationResult() {
+ QueryRequest queryRequest = new QueryRequest();
+ queryRequest.setHashId("hash-id-1");
+ service.buildVisualizationUsingGenericQuery(queryRequest);
+ }
+
+ String queryRequest = "{\r\n" +
+ " \"variables\": [],\r\n" +
+ " \"info\": {\r\n" +
+ " \"name\": \"NamedQuery\",\r\n" +
+ " \"_postman_id\": \"8006823d-35ce-16ef-88e9-cd5b873c9e7b\",\r\n" +
+ " \"schema\": \"https://schema.getpostman.com/json/collection/v2.0.0/collection.json\"\r\n" +
+ " },\r\n" +
+ " \"item\": [\r\n" +
+ " {\r\n" +
+ " \"name\": \"https://127.0.0.1:8443/aai/v11/service-design-and-creation/named-queries/named-query/0367193e-c785-4d5f-9cb8-7bc89dc9ddb7\",\r\n" +
+ " \"request\": {\r\n" +
+ " \"url\": \"https://127.0.0.1:8443/aai/v11/service-design-and-creation/named-queries/named-query/0367193e-c785-4d5f-9cb8-7bc89dc9ddb7\",\r\n" +
+ " \"method\": \"POST\",\r\n" +
+ " \"header\": [\r\n" +
+ " {\r\n" +
+ " \"key\": \"Content-Type\",\r\n" +
+ " \"value\": \"application/json\",\r\n" +
+ " \"description\": \"\"\r\n" +
+ " },\r\n" +
+ " {\r\n" +
+ " \"key\": \"X-TransactionId\",\r\n" +
+ " \"value\": \"9999\",\r\n" +
+ " \"description\": \"\"\r\n" +
+ " },\r\n" +
+ " {\r\n" +
+ " \"key\": \"X-FromAppId\",\r\n" +
+ " \"value\": \"jimmy-postman\",\r\n" +
+ " \"description\": \"\"\r\n" +
+ " },\r\n" +
+ " {\r\n" +
+ " \"key\": \"Authorization\",\r\n" +
+ " \"value\": \"Basic QUFJOkFBSQ==\",\r\n" +
+ " \"description\": \"\"\r\n" +
+ " }\r\n" +
+ " ],\r\n" +
+ " \"body\": {\r\n" +
+ " \"mode\": \"raw\",\r\n" +
+ " \"raw\": \"{\\n \\\"named-query-uuid\\\" : \\\"0367193e-c785-4d5f-9cb8-7bc89dc9ddb7\\\",\\n \\\"named-query-name\\\" : \\\"get-component-list\\\",\\n \\\"named-query-version\\\" : \\\"1.1\\\",\\n \\\"description\\\" : \\\"Named Query - Get Component List\\\",\\n \\\"named-query-elements\\\" : {\\n \\\"named-query-element\\\" : [ {\\n \\\"property-collect-list\\\" : [ \\\"service-instance-id\\\", \\\"service-instance-name\\\" ],\\n \\\"named-query-elements\\\" : {\\n \\\"named-query-element\\\" : [ {\\n \\\"named-query-elements\\\" : {\\n \\\"named-query-element\\\" : [ {\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"1b2c9ba7-e449-4831-ba15-3073672f5ef2\\\"\\n } ]\\n } ]\\n }\\n } ]\\n },\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"3d560d81-57d0-438b-a2a1-5334dba0651a\\\"\\n } ]\\n } ]\\n }\\n }, {\\n \\\"named-query-elements\\\" : {\\n \\\"named-query-element\\\" : [ {\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"fcec1b02-b2d0-4834-aef8-d71be04717dd\\\"\\n } ]\\n } ]\\n }\\n }, {\\n \\\"named-query-elements\\\" : {\\n \\\"named-query-element\\\" : [ {\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"ff69d4e0-a8e8-4108-bdb0-dd63217e63c7\\\"\\n } ]\\n } ]\\n }\\n }, {\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"fcec1b02-b2d0-4834-aef8-d71be04717dd\\\"\\n } ]\\n } ]\\n }\\n }, {\\n \\\"named-query-elements\\\" : {\\n \\\"named-query-element\\\" : [ {\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"1b2c9ba7-e449-4831-ba15-3073672f5ef2\\\"\\n } ]\\n } ]\\n }\\n } ]\\n },\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"3d560d81-57d0-438b-a2a1-5334dba0651a\\\"\\n } ]\\n } ]\\n }\\n } ]\\n },\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"ef86f9c5-2165-44f3-8fc3-96018b609ea5\\\"\\n } ]\\n } ]\\n }\\n } ]\\n },\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"acc6edd8-a8d4-4b93-afaa-0994068be14c\\\"\\n } ]\\n } ]\\n }\\n } ]\\n },\\n \\\"relationship-list\\\" : {\\n \\\"relationship\\\" : [ {\\n \\\"related-to\\\" : \\\"model\\\",\\n \\\"relationship-data\\\" : [ {\\n \\\"relationship-key\\\" : \\\"model.model-invariant-id\\\",\\n \\\"relationship-value\\\" : \\\"82194af1-3c2c-485a-8f44-420e22a9eaa4\\\"\\n } ]\\n } ]\\n }\\n } ]\\n }\\n}\\n\"\r\n" +
+ " },\r\n" +
+ " \"description\": \"\"\r\n" +
+ " },\r\n" +
+ " \"response\": []\r\n" +
+ " }\r\n" +
+ " ]\r\n" +
+ "}";
+}
|