From 7343beeaf260747aef6a6b9c22acd91de67c5ca0 Mon Sep 17 00:00:00 2001 From: Fiete Ostkamp Date: Mon, 19 Sep 2022 16:55:36 +0200 Subject: Add instructions to invoke the linter and code formatter plugins to the README and invoke the formatter Issue-ID: AAI-3526 Signed-off-by: Fiete Ostkamp Change-Id: Ibd383994732cea6460153704a1153beb530dc6c3 --- .../org/onap/aai/queries/CustomQueryConfig.java | 62 ++--- .../org/onap/aai/queries/GetCustomQueryConfig.java | 196 ++++++++------- .../onap/aai/queries/GremlinServerSingleton.java | 77 +++--- .../test/java/org/onap/aai/queries/AAISetup.java | 90 +++---- .../java/org/onap/aai/queries/OnapQueryTest.java | 269 ++++++++++----------- .../aai/queries/VnfToEsrSystemInfoQueryTest.java | 140 ++++++----- 6 files changed, 407 insertions(+), 427 deletions(-) (limited to 'aai-queries') diff --git a/aai-queries/src/main/java/org/onap/aai/queries/CustomQueryConfig.java b/aai-queries/src/main/java/org/onap/aai/queries/CustomQueryConfig.java index 664c9ca..1b9e833 100644 --- a/aai-queries/src/main/java/org/onap/aai/queries/CustomQueryConfig.java +++ b/aai-queries/src/main/java/org/onap/aai/queries/CustomQueryConfig.java @@ -8,7 +8,7 @@ * 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 + * 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, @@ -17,37 +17,41 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.queries; import java.util.List; public class CustomQueryConfig { - public CustomQueryConfig() { - // used by GetCustomQueryConfig - } - - - private String query; - private List queryOptionalProperties; - private List queryRequiredProperties; - - public void setQuery(String query) { - this.query = query; - } - public String getQuery() { - return this.query; - } - - public void setQueryOptionalProperties( List queryOptionalProperties) { - this.queryOptionalProperties = queryOptionalProperties; - } - public List getQueryOptionalProperties( ) { - return queryOptionalProperties; - } - public void setQueryRequiredProperties( List queryRequiredProperties) { - this.queryRequiredProperties = queryRequiredProperties; - } - public List getQueryRequiredProperties( ) { - return queryRequiredProperties; - } + public CustomQueryConfig() { + // used by GetCustomQueryConfig + } + + private String query; + private List queryOptionalProperties; + private List queryRequiredProperties; + + public void setQuery(String query) { + this.query = query; + } + + public String getQuery() { + return this.query; + } + + public void setQueryOptionalProperties(List queryOptionalProperties) { + this.queryOptionalProperties = queryOptionalProperties; + } + + public List getQueryOptionalProperties() { + return queryOptionalProperties; + } + + public void setQueryRequiredProperties(List queryRequiredProperties) { + this.queryRequiredProperties = queryRequiredProperties; + } + + public List getQueryRequiredProperties() { + return queryRequiredProperties; + } } diff --git a/aai-queries/src/main/java/org/onap/aai/queries/GetCustomQueryConfig.java b/aai-queries/src/main/java/org/onap/aai/queries/GetCustomQueryConfig.java index c726c76..07f7724 100644 --- a/aai-queries/src/main/java/org/onap/aai/queries/GetCustomQueryConfig.java +++ b/aai-queries/src/main/java/org/onap/aai/queries/GetCustomQueryConfig.java @@ -8,7 +8,7 @@ * 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 + * 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, @@ -17,6 +17,7 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.queries; import com.google.gson.*; @@ -28,122 +29,119 @@ import java.util.List; public class GetCustomQueryConfig { - private JsonArray storedQueries = null; - private CustomQueryConfig customQueryConfig; + private JsonArray storedQueries = null; + private CustomQueryConfig customQueryConfig; + private final static String QUERY_CONFIG = "query"; + private final static String REQUIRED_CONFIG = "required-properties"; + private final static String OPTIONAL_CONFIG = "optional-properties"; + private final static String STORED_QUERIES_CONFIG = "stored-queries"; + private final static String STORED_QUERY_CONFIG = "stored-query"; - private final static String QUERY_CONFIG = "query"; - private final static String REQUIRED_CONFIG = "required-properties"; - private final static String OPTIONAL_CONFIG = "optional-properties"; - private final static String STORED_QUERIES_CONFIG = "stored-queries"; - private final static String STORED_QUERY_CONFIG = "stored-query"; + // public static final String AAI_HOME_ETC_QUERY_JSON = AAIConstants.AAI_HOME_ETC + "query" + + // AAIConstants.AAI_FILESEP + "stored-queries.json"; -// public static final String AAI_HOME_ETC_QUERY_JSON = AAIConstants.AAI_HOME_ETC + "query" + AAIConstants.AAI_FILESEP + "stored-queries.json"; + public GetCustomQueryConfig(String customQueryJson) { + init(customQueryJson); + } - public GetCustomQueryConfig(String customQueryJson ) { - init(customQueryJson); - } + private void init(String customQueryJson) { + JsonParser parser = new JsonParser(); + JsonObject queriesObject = parser.parse(customQueryJson).getAsJsonObject(); + if (queriesObject.has(STORED_QUERIES_CONFIG)) { - private void init( String customQueryJson) { - JsonParser parser = new JsonParser(); - JsonObject queriesObject = parser.parse(customQueryJson).getAsJsonObject(); - if (queriesObject.has(STORED_QUERIES_CONFIG)) { + storedQueries = queriesObject.getAsJsonArray(STORED_QUERIES_CONFIG); + } + } - storedQueries = queriesObject.getAsJsonArray(STORED_QUERIES_CONFIG); + private List toStringList(JsonArray array) { + Gson converter = new Gson(); + Type listType = new TypeToken>() {}.getType(); + return converter.fromJson(array, listType); } - } - - private List toStringList(JsonArray array) { - Gson converter = new Gson(); - Type listType = new TypeToken>() {}.getType(); - return converter.fromJson(array, listType); - } - - private List getPropertyList(JsonObject configObject, String config ) { - JsonElement subqueryConfig; - JsonArray props; - - if ( configObject.has(config)) { - subqueryConfig = configObject.get(config); - if ( subqueryConfig != null && !subqueryConfig.isJsonNull() ) { - props = subqueryConfig.getAsJsonArray(); - if ( props != null ) { - return toStringList(props); + + private List getPropertyList(JsonObject configObject, String config) { + JsonElement subqueryConfig; + JsonArray props; + + if (configObject.has(config)) { + subqueryConfig = configObject.get(config); + if (subqueryConfig != null && !subqueryConfig.isJsonNull()) { + props = subqueryConfig.getAsJsonArray(); + if (props != null) { + return toStringList(props); + } + } } - } + return toStringList(null); } - return toStringList(null); - } - private String getPropertyString(JsonObject configObject, String config) { - JsonElement subqueryConfig; + private String getPropertyString(JsonObject configObject, String config) { + JsonElement subqueryConfig; - if ( configObject.has(config)) { - subqueryConfig = configObject.get(config); - if ( subqueryConfig != null && !subqueryConfig.isJsonNull() ) { - return subqueryConfig.getAsString(); - } - } - return null; - } - - private void getStoredQueryBlock( JsonObject configObject, String config ) { - if ( !configObject.has(config)) { - customQueryConfig.setQueryRequiredProperties( new ArrayList() ); - customQueryConfig.setQueryOptionalProperties( new ArrayList() ); - return; + if (configObject.has(config)) { + subqueryConfig = configObject.get(config); + if (subqueryConfig != null && !subqueryConfig.isJsonNull()) { + return subqueryConfig.getAsString(); + } + } + return null; } - JsonElement queryConfig; - JsonObject subObject; - String multipleStartNodes; - List propertyList; + private void getStoredQueryBlock(JsonObject configObject, String config) { + if (!configObject.has(config)) { + customQueryConfig.setQueryRequiredProperties(new ArrayList()); + customQueryConfig.setQueryOptionalProperties(new ArrayList()); + return; + } + + JsonElement queryConfig; + JsonObject subObject; + String multipleStartNodes; + List propertyList; - queryConfig = configObject.get(config); - subObject = queryConfig.getAsJsonObject(); - propertyList = getPropertyList(subObject, REQUIRED_CONFIG); - if ( propertyList == null ) { - propertyList = new ArrayList(); - } - customQueryConfig.setQueryRequiredProperties( propertyList ); - propertyList = getPropertyList(subObject, OPTIONAL_CONFIG); - if ( propertyList == null ) { - propertyList = new ArrayList(); - } - customQueryConfig.setQueryOptionalProperties( propertyList ); - - } - - - public CustomQueryConfig getStoredQuery(String queryName ) { - - customQueryConfig = null; - JsonObject configObject; - JsonElement query; - JsonElement queryConfig; - String queryString; - - for (JsonElement storedQuery : storedQueries) { - if (storedQuery.isJsonObject()) { - JsonObject queryObject = storedQuery.getAsJsonObject(); - query = queryObject.get(queryName); - if ( query != null ) { - customQueryConfig = new CustomQueryConfig(); - configObject = query.getAsJsonObject(); - getStoredQueryBlock(configObject, QUERY_CONFIG); - if ( configObject.has(STORED_QUERY_CONFIG)) { - queryConfig = configObject.get(STORED_QUERY_CONFIG); - customQueryConfig.setQuery(queryConfig.getAsString()); - } - break; + queryConfig = configObject.get(config); + subObject = queryConfig.getAsJsonObject(); + propertyList = getPropertyList(subObject, REQUIRED_CONFIG); + if (propertyList == null) { + propertyList = new ArrayList(); } - } - } + customQueryConfig.setQueryRequiredProperties(propertyList); + propertyList = getPropertyList(subObject, OPTIONAL_CONFIG); + if (propertyList == null) { + propertyList = new ArrayList(); + } + customQueryConfig.setQueryOptionalProperties(propertyList); - return customQueryConfig; + } - } + public CustomQueryConfig getStoredQuery(String queryName) { + + customQueryConfig = null; + JsonObject configObject; + JsonElement query; + JsonElement queryConfig; + String queryString; + + for (JsonElement storedQuery : storedQueries) { + if (storedQuery.isJsonObject()) { + JsonObject queryObject = storedQuery.getAsJsonObject(); + query = queryObject.get(queryName); + if (query != null) { + customQueryConfig = new CustomQueryConfig(); + configObject = query.getAsJsonObject(); + getStoredQueryBlock(configObject, QUERY_CONFIG); + if (configObject.has(STORED_QUERY_CONFIG)) { + queryConfig = configObject.get(STORED_QUERY_CONFIG); + customQueryConfig.setQuery(queryConfig.getAsString()); + } + break; + } + } + } + return customQueryConfig; + } } diff --git a/aai-queries/src/main/java/org/onap/aai/queries/GremlinServerSingleton.java b/aai-queries/src/main/java/org/onap/aai/queries/GremlinServerSingleton.java index 509aa88..dd0db86 100644 --- a/aai-queries/src/main/java/org/onap/aai/queries/GremlinServerSingleton.java +++ b/aai-queries/src/main/java/org/onap/aai/queries/GremlinServerSingleton.java @@ -8,7 +8,7 @@ * 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 + * 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, @@ -17,17 +17,8 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -package org.onap.aai.queries; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.onap.aai.aaf.auth.FileWatcher; -import org.onap.aai.logging.LogFormatTools; -import org.onap.aai.util.AAIConstants; -import org.springframework.beans.factory.annotation.Value; -import javax.annotation.PostConstruct; +package org.onap.aai.queries; import java.io.File; import java.io.IOException; @@ -38,6 +29,15 @@ import java.util.Date; import java.util.Timer; import java.util.TimerTask; +import javax.annotation.PostConstruct; + +import org.onap.aai.aaf.auth.FileWatcher; +import org.onap.aai.logging.LogFormatTools; +import org.onap.aai.util.AAIConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; + public class GremlinServerSingleton { private static Logger logger = LoggerFactory.getLogger(GremlinServerSingleton.class); @@ -62,56 +62,57 @@ public class GremlinServerSingleton { @PostConstruct public void init() { - try { - String filepath = storedQueriesLocation + AAIConstants.AAI_FILESEP + "stored-queries.json"; - Path path = Paths.get(filepath); - String customQueryConfigJson = new String(Files.readAllBytes(path)); - - - queryConfig = new GetCustomQueryConfig(customQueryConfigJson); - } catch (IOException e) { - logger.error("Error occurred during the processing of query json file: " + LogFormatTools.getStackTop(e)); - } + try { + String filepath = + storedQueriesLocation + AAIConstants.AAI_FILESEP + "stored-queries.json"; + Path path = Paths.get(filepath); + String customQueryConfigJson = new String(Files.readAllBytes(path)); + queryConfig = new GetCustomQueryConfig(customQueryConfigJson); + } catch (IOException e) { + logger.error("Error occurred during the processing of query json file: " + + LogFormatTools.getStackTop(e)); + } TimerTask task = new FileWatcher(new File(storedQueriesLocation)) { @Override protected void onChange(File file) { - try { - String filepath = storedQueriesLocation; - Path path = Paths.get(filepath); - String customQueryConfigJson = new String(Files.readAllBytes(path)); - queryConfig = new GetCustomQueryConfig(customQueryConfigJson); - } catch (IOException e) { - logger.error("Error occurred during the processing of query json file: " + LogFormatTools.getStackTop(e)); - } + try { + String filepath = storedQueriesLocation; + Path path = Paths.get(filepath); + String customQueryConfigJson = new String(Files.readAllBytes(path)); + queryConfig = new GetCustomQueryConfig(customQueryConfigJson); + } catch (IOException e) { + logger.error("Error occurred during the processing of query json file: " + + LogFormatTools.getStackTop(e)); + } } }; if (!timerSet) { timerSet = true; timer = new Timer(); - timer.schedule( task , new Date(), 10000 ); + timer.schedule(task, new Date(), 10000); } } /** * Gets the query using CustomQueryConfig + * * @param key * @return */ - public String getStoredQueryFromConfig(String key){ - CustomQueryConfig customQueryConfig = queryConfig.getStoredQuery(key); - if ( customQueryConfig == null ) { - return null; - } - return customQueryConfig.getQuery(); + public String getStoredQueryFromConfig(String key) { + CustomQueryConfig customQueryConfig = queryConfig.getStoredQuery(key); + if (customQueryConfig == null) { + return null; + } + return customQueryConfig.getQuery(); } public CustomQueryConfig getCustomQueryConfig(String key) { - return queryConfig.getStoredQuery(key); + return queryConfig.getStoredQuery(key); } - } diff --git a/aai-queries/src/test/java/org/onap/aai/queries/AAISetup.java b/aai-queries/src/test/java/org/onap/aai/queries/AAISetup.java index 15943b7..2ca90ea 100644 --- a/aai-queries/src/test/java/org/onap/aai/queries/AAISetup.java +++ b/aai-queries/src/test/java/org/onap/aai/queries/AAISetup.java @@ -8,7 +8,7 @@ * 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 + * 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, @@ -17,8 +17,15 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.queries; +import static org.junit.Assert.assertNotNull; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Map; + import org.apache.commons.io.IOUtils; import org.junit.BeforeClass; import org.junit.ClassRule; @@ -43,58 +50,43 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.rules.SpringClassRule; import org.springframework.test.context.junit4.rules.SpringMethodRule; -import java.io.IOException; -import java.io.InputStream; -import java.util.Map; - -import static org.junit.Assert.assertNotNull; - -@ContextConfiguration(classes = { - SchemaLocationsBean.class, - SchemaVersions.class, - AAIConfigTranslator.class, - EdgeIngestor.class, - EdgeSerializer.class, - NodeIngestor.class, - SpringContextAware.class, - IntrospectionConfig.class , - RestBeanConfig.class, - GremlinServerSingleton.class -}) -@TestPropertySource(properties = { - "schema.uri.base.path = /aai", - "schema.ingest.file = src/test/resources/application-test.properties" -}) +@ContextConfiguration( + classes = {SchemaLocationsBean.class, SchemaVersions.class, AAIConfigTranslator.class, + EdgeIngestor.class, EdgeSerializer.class, NodeIngestor.class, SpringContextAware.class, + IntrospectionConfig.class, RestBeanConfig.class, GremlinServerSingleton.class}) +@TestPropertySource( + properties = {"schema.uri.base.path = /aai", + "schema.ingest.file = src/test/resources/application-test.properties"}) public abstract class AAISetup { - @Autowired - protected NodeIngestor nodeIngestor; + @Autowired + protected NodeIngestor nodeIngestor; - @Autowired - protected LoaderFactory loaderFactory; + @Autowired + protected LoaderFactory loaderFactory; - @Autowired - protected Map moxyLoaderInstance; + @Autowired + protected Map moxyLoaderInstance; - @Autowired - protected HttpEntry traversalHttpEntry; + @Autowired + protected HttpEntry traversalHttpEntry; - @Autowired - protected HttpEntry traversalUriHttpEntry; + @Autowired + protected HttpEntry traversalUriHttpEntry; - @Autowired - protected EdgeSerializer edgeSer; + @Autowired + protected EdgeSerializer edgeSer; - @Autowired - protected EdgeIngestor edgeIngestor; + @Autowired + protected EdgeIngestor edgeIngestor; - @Autowired - protected SchemaVersions schemaVersions; + @Autowired + protected SchemaVersions schemaVersions; - @Autowired - protected GremlinServerSingleton gremlinServerSingleton; + @Autowired + protected GremlinServerSingleton gremlinServerSingleton; - @Value("${schema.uri.base.path}") - protected String basePath; + @Value("${schema.uri.base.path}") + protected String basePath; @ClassRule public static final SpringClassRule springClassRule = new SpringClassRule(); @@ -111,9 +103,7 @@ public abstract class AAISetup { public String getPayload(String filename) throws IOException { - InputStream inputStream = getClass() - .getClassLoader() - .getResourceAsStream(filename); + InputStream inputStream = getClass().getClassLoader().getResourceAsStream(filename); String message = String.format("Unable to find the %s in src/test/resources", filename); assertNotNull(message, inputStream); @@ -122,11 +112,3 @@ public abstract class AAISetup { return resource; } } - - - - - - - - diff --git a/aai-queries/src/test/java/org/onap/aai/queries/OnapQueryTest.java b/aai-queries/src/test/java/org/onap/aai/queries/OnapQueryTest.java index 25591e7..7c766c9 100644 --- a/aai-queries/src/test/java/org/onap/aai/queries/OnapQueryTest.java +++ b/aai-queries/src/test/java/org/onap/aai/queries/OnapQueryTest.java @@ -8,7 +8,7 @@ * 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 + * 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, @@ -17,14 +17,26 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.queries; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.when; + import com.google.gson.Gson; import com.google.gson.stream.JsonReader; import com.jayway.jsonpath.JsonPath; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.util.*; +import java.util.stream.Collectors; + import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.structure.Graph; @@ -58,6 +70,8 @@ import org.onap.aai.serialization.db.exceptions.NoEdgeRuleFoundException; import org.onap.aai.serialization.engines.QueryStyle; import org.onap.aai.serialization.engines.TransactionalGraphEngine; import org.onap.aai.setup.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.test.context.ContextConfiguration; @@ -65,167 +79,138 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.rules.SpringClassRule; import org.springframework.test.context.junit4.rules.SpringMethodRule; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.util.*; -import java.util.stream.Collectors; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.when; - @RunWith(Parameterized.class) -@ContextConfiguration(classes = { - SchemaLocationsBean.class, - SchemaConfigVersions.class, - AAIConfigTranslator.class, - EdgeIngestor.class, - EdgeSerializer.class, - NodeIngestor.class, - SpringContextAware.class, - GremlinServerSingleton.class, - IntrospectionConfig.class -}) -@TestPropertySource(properties = { - "schema.uri.base.path = /aai", - "schema.source.name = onap", - "schema.ingest.file = src/test/resources/application-test.properties" -}) +@ContextConfiguration( + classes = {SchemaLocationsBean.class, SchemaConfigVersions.class, AAIConfigTranslator.class, + EdgeIngestor.class, EdgeSerializer.class, NodeIngestor.class, SpringContextAware.class, + GremlinServerSingleton.class, IntrospectionConfig.class}) +@TestPropertySource( + properties = {"schema.uri.base.path = /aai", "schema.source.name = onap", + "schema.ingest.file = src/test/resources/application-test.properties"}) public abstract class OnapQueryTest { - @ClassRule + @ClassRule public static final SpringClassRule springClassRule = new SpringClassRule(); @Rule public final SpringMethodRule springMethodRule = new SpringMethodRule(); - protected Logger logger; - protected Graph graph; - protected GremlinGroovyShell shell; - @Mock protected TransactionalGraphEngine dbEngine; - protected final List expectedResult = new ArrayList<>(); - - @Autowired - protected EdgeIngestor edgeRules; - - @Autowired - protected EdgeSerializer rules; - - @Autowired - protected LoaderFactory loaderFactory; - - @Autowired - protected SchemaVersions schemaVersions; - - protected Loader loader; - protected GraphTraversalSource gts; - - @Autowired - protected GremlinServerSingleton gremlinServerSingleton; - - @Parameterized.Parameter(value = 0) - public SchemaVersion version; - - @Parameterized.Parameters(name = "Version.{0}") - public static Collection data() { - return Arrays.asList(new Object[][]{ - {new SchemaVersion("v11")}, - {new SchemaVersion("v12")}, - {new SchemaVersion("v13")}, - {new SchemaVersion("v14")}, - {new SchemaVersion("v15")}, - {new SchemaVersion("v16")}, - {new SchemaVersion("v17")}, - {new SchemaVersion("v18")}, - {new SchemaVersion("v19")}, - {new SchemaVersion("v20")} - }); - } - - protected String query; - - LinkedHashMap params; - - @Autowired - private Environment env; - - @BeforeClass - public static void setupBundleconfig() { - System.setProperty("AJSC_HOME", "./"); - System.setProperty("BUNDLECONFIG_DIR", "src/main/resources/"); - } - - @Before - public void setUp() throws AAIException, NoEdgeRuleFoundException, EdgeRuleNotFoundException, AmbiguousRuleChoiceException, IOException { - System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); - logger = LoggerFactory.getLogger(getClass()); - MockitoAnnotations.initMocks(this); - graph = TinkerGraph.open(); - gts = graph.traversal(); - createGraph(); - shell = new GremlinGroovyShell(); - loader = loaderFactory.createLoaderForVersion(ModelType.MOXY, version); + protected Logger logger; + protected Graph graph; + protected GremlinGroovyShell shell; + @Mock + protected TransactionalGraphEngine dbEngine; + protected final List expectedResult = new ArrayList<>(); + + @Autowired + protected EdgeIngestor edgeRules; + + @Autowired + protected EdgeSerializer rules; + + @Autowired + protected LoaderFactory loaderFactory; + + @Autowired + protected SchemaVersions schemaVersions; + + protected Loader loader; + protected GraphTraversalSource gts; + + @Autowired + protected GremlinServerSingleton gremlinServerSingleton; + + @Parameterized.Parameter(value = 0) + public SchemaVersion version; + + @Parameterized.Parameters(name = "Version.{0}") + public static Collection data() { + return Arrays.asList(new Object[][] {{new SchemaVersion("v11")}, {new SchemaVersion("v12")}, + {new SchemaVersion("v13")}, {new SchemaVersion("v14")}, {new SchemaVersion("v15")}, + {new SchemaVersion("v16")}, {new SchemaVersion("v17")}, {new SchemaVersion("v18")}, + {new SchemaVersion("v19")}, {new SchemaVersion("v20")}}); + } + + protected String query; + + LinkedHashMap params; + + @Autowired + private Environment env; + + @BeforeClass + public static void setupBundleconfig() { + System.setProperty("AJSC_HOME", "./"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources/"); + } + + @Before + public void setUp() throws AAIException, NoEdgeRuleFoundException, EdgeRuleNotFoundException, + AmbiguousRuleChoiceException, IOException { + System.setProperty("AJSC_HOME", "."); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); + logger = LoggerFactory.getLogger(getClass()); + MockitoAnnotations.initMocks(this); + graph = TinkerGraph.open(); + gts = graph.traversal(); + createGraph(); + shell = new GremlinGroovyShell(); + loader = loaderFactory.createLoaderForVersion(ModelType.MOXY, version); setUpQuery(); - } - - - protected void setUpQuery() { - query = gremlinServerSingleton.getStoredQueryFromConfig(getQueryName()); - params = new LinkedHashMap <>(); - addParam(params); - when(dbEngine.getQueryBuilder(any(QueryStyle.class))).thenReturn(new GremlinTraversal<>(loader, graph.traversal())); - logger.info("Stored query in abstraction form {}", query); - query = new GroovyQueryBuilder().executeTraversal(dbEngine, query, params); - logger.info("After converting to gremlin query {}", query); - query = "g" + query; - GraphTraversal g = graph.traversal().V(); - addStartNode(g); - params.put("g", g); - } + } - public void run() { + protected void setUpQuery() { + query = gremlinServerSingleton.getStoredQueryFromConfig(getQueryName()); + params = new LinkedHashMap<>(); + addParam(params); + when(dbEngine.getQueryBuilder(any(QueryStyle.class))) + .thenReturn(new GremlinTraversal<>(loader, graph.traversal())); + logger.info("Stored query in abstraction form {}", query); + query = new GroovyQueryBuilder().executeTraversal(dbEngine, query, params); + logger.info("After converting to gremlin query {}", query); + query = "g" + query; + GraphTraversal g = graph.traversal().V(); + addStartNode(g); + params.put("g", g); + } - GraphTraversal result = (GraphTraversal)shell.executeTraversal(query, params); + public void run() { - List vertices = result.toList(); + GraphTraversal result = + (GraphTraversal) shell.executeTraversal(query, params); - logger.info("Expected result set of vertexes [{}]", convert(expectedResult)); - logger.info("Actual Result set of vertexes [{}]", convert(vertices)); + List vertices = result.toList(); - List nonDuplicateExpectedResult = new ArrayList<>(new HashSet<>(expectedResult)); - vertices = new ArrayList<>(new HashSet<>(vertices)); + logger.info("Expected result set of vertexes [{}]", convert(expectedResult)); + logger.info("Actual Result set of vertexes [{}]", convert(vertices)); - nonDuplicateExpectedResult.sort(Comparator.comparing(vertex -> vertex.id().toString())); - vertices.sort(Comparator.comparing(vertex -> vertex.id().toString())); + List nonDuplicateExpectedResult = new ArrayList<>(new HashSet<>(expectedResult)); + vertices = new ArrayList<>(new HashSet<>(vertices)); + nonDuplicateExpectedResult.sort(Comparator.comparing(vertex -> vertex.id().toString())); + vertices.sort(Comparator.comparing(vertex -> vertex.id().toString())); - // Use this instead of the assertTrue as this provides more useful - // debugging information such as this when expected and actual differ: - // java.lang.AssertionError: Expected all the vertices to be found - // Expected :[v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11], v[12]] - // Actual :[v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11], v[12]] - assertEquals("Expected all the vertices to be found", nonDuplicateExpectedResult, vertices); + // Use this instead of the assertTrue as this provides more useful + // debugging information such as this when expected and actual differ: + // java.lang.AssertionError: Expected all the vertices to be found + // Expected :[v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11], v[12]] + // Actual :[v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10], v[11], v[12]] + assertEquals("Expected all the vertices to be found", nonDuplicateExpectedResult, vertices); - } + } - protected String convert(List vertices){ - return vertices - .stream() - .map(vertex -> vertex.property("aai-node-type").value().toString()) - .collect(Collectors.joining(",")); - } + protected String convert(List vertices) { + return vertices.stream().map(vertex -> vertex.property("aai-node-type").value().toString()) + .collect(Collectors.joining(",")); + } - protected abstract void createGraph() throws AAIException, NoEdgeRuleFoundException, EdgeRuleNotFoundException, AmbiguousRuleChoiceException; + protected abstract void createGraph() throws AAIException, NoEdgeRuleFoundException, + EdgeRuleNotFoundException, AmbiguousRuleChoiceException; - protected abstract String getQueryName(); + protected abstract String getQueryName(); - protected abstract void addStartNode(GraphTraversal g); + protected abstract void addStartNode(GraphTraversal g); - protected abstract void addParam(Map params); + protected abstract void addParam(Map params); } diff --git a/aai-queries/src/test/java/org/onap/aai/queries/VnfToEsrSystemInfoQueryTest.java b/aai-queries/src/test/java/org/onap/aai/queries/VnfToEsrSystemInfoQueryTest.java index 6bc2705..373e251 100644 --- a/aai-queries/src/test/java/org/onap/aai/queries/VnfToEsrSystemInfoQueryTest.java +++ b/aai-queries/src/test/java/org/onap/aai/queries/VnfToEsrSystemInfoQueryTest.java @@ -8,7 +8,7 @@ * 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 + * 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, @@ -17,10 +17,13 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.queries; import static org.junit.Assert.assertTrue; +import java.util.Map; + import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.structure.T; @@ -29,71 +32,78 @@ import org.junit.Test; import org.onap.aai.exceptions.AAIException; import org.onap.aai.serialization.db.exceptions.NoEdgeRuleFoundException; -import java.util.Map; - public class VnfToEsrSystemInfoQueryTest extends OnapQueryTest { - public VnfToEsrSystemInfoQueryTest() { - super(); - } + public VnfToEsrSystemInfoQueryTest() { + super(); + } - @Test - public void run() { - super.run(); + @Test + public void run() { + super.run(); assertTrue(true); - } - - @Override - protected void createGraph() throws AAIException, NoEdgeRuleFoundException { - - - Vertex gnvf = graph.addVertex(T.label, "generic-vnf", T.id, "2", "aai-node-type", "generic-vnf", "vnf-id", "vnf-id-1"); - Vertex vserver = graph.addVertex(T.label, "vserver", T.id, "3", "aai-node-type", "vserver", "vserver-id", "vserver-id-1","vserver-name","vserver-name-1"); - Vertex tenant = graph.addVertex(T.label, "tenant", T.id, "4", "aai-node-type", "tenant", "tenant-id", "tenantid01", "tenant-name", "tenantName01"); - Vertex cloudregion = graph.addVertex(T.label, "cloud-region", T.id, "5", "aai-node-type", "cloud-region", "cloud-region-id", "cloud-region-id-1", "cloud-region-owner", "cloud-owner-name-1"); - Vertex esr = graph.addVertex(T.label, "esr-system-info", T.id, "6", "aai-node-type", "esr-system-info", "esr-system-info-id", "esr-system-info-1"); - - Vertex gnvf1 = graph.addVertex(T.label, "generic-vnf", T.id, "8", "aai-node-type", "generic-vnf", "vnf-id", "vnf-id-2"); - Vertex vserver1 = graph.addVertex(T.label, "vserver", T.id, "9", "aai-node-type", "vserver", "vserver-id", "vserver-id-2","vserver-name","vserver-name-2"); - Vertex tenant1 = graph.addVertex(T.label, "tenant", T.id, "10", "aai-node-type", "tenant", "tenant-id", "tenantid02", "tenant-name", "tenantName02"); - Vertex cloudregion1 = graph.addVertex(T.label, "cloud-region", T.id, "11", "aai-node-type", "cloud-region", "cloud-region-id", "cloud-region-id-2", "cloud-region-owner", "cloud-owner-name-2"); - Vertex esr1 = graph.addVertex(T.label, "esr-system-info", T.id, "12", "aai-node-type", "esr-system-info", "esr-system-info-id", "esr-system-info-2"); - - - - - GraphTraversalSource g = graph.traversal(); - rules.addEdge(g, gnvf, vserver); - rules.addTreeEdge(g, vserver,tenant); - rules.addTreeEdge(g, tenant,cloudregion); - rules.addTreeEdge(g, cloudregion, esr); - - //Not expected in result - rules.addEdge(g, gnvf1, vserver1); - rules.addTreeEdge(g, vserver1,tenant1); - rules.addTreeEdge(g, tenant1,cloudregion1); - rules.addTreeEdge(g, cloudregion1, esr1); - //Not expected in result - - expectedResult.add(gnvf); - expectedResult.add(vserver); - expectedResult.add(tenant); - expectedResult.add(cloudregion); - expectedResult.add(esr); - - - } - - @Override - protected String getQueryName() { - return "vnf-to-esr-system-info"; - } - @Override - protected void addStartNode(GraphTraversal g) { - g.has("aai-node-type", "generic-vnf").has("vnf-id", "vnf-id-1"); - - } - @Override - protected void addParam(Map params) { - return; - } + } + + @Override + protected void createGraph() throws AAIException, NoEdgeRuleFoundException { + + Vertex gnvf = graph.addVertex(T.label, "generic-vnf", T.id, "2", "aai-node-type", + "generic-vnf", "vnf-id", "vnf-id-1"); + Vertex vserver = graph.addVertex(T.label, "vserver", T.id, "3", "aai-node-type", "vserver", + "vserver-id", "vserver-id-1", "vserver-name", "vserver-name-1"); + Vertex tenant = graph.addVertex(T.label, "tenant", T.id, "4", "aai-node-type", "tenant", + "tenant-id", "tenantid01", "tenant-name", "tenantName01"); + Vertex cloudregion = + graph.addVertex(T.label, "cloud-region", T.id, "5", "aai-node-type", "cloud-region", + "cloud-region-id", "cloud-region-id-1", "cloud-region-owner", "cloud-owner-name-1"); + Vertex esr = graph.addVertex(T.label, "esr-system-info", T.id, "6", "aai-node-type", + "esr-system-info", "esr-system-info-id", "esr-system-info-1"); + + Vertex gnvf1 = graph.addVertex(T.label, "generic-vnf", T.id, "8", "aai-node-type", + "generic-vnf", "vnf-id", "vnf-id-2"); + Vertex vserver1 = graph.addVertex(T.label, "vserver", T.id, "9", "aai-node-type", "vserver", + "vserver-id", "vserver-id-2", "vserver-name", "vserver-name-2"); + Vertex tenant1 = graph.addVertex(T.label, "tenant", T.id, "10", "aai-node-type", "tenant", + "tenant-id", "tenantid02", "tenant-name", "tenantName02"); + Vertex cloudregion1 = + graph.addVertex(T.label, "cloud-region", T.id, "11", "aai-node-type", "cloud-region", + "cloud-region-id", "cloud-region-id-2", "cloud-region-owner", "cloud-owner-name-2"); + Vertex esr1 = graph.addVertex(T.label, "esr-system-info", T.id, "12", "aai-node-type", + "esr-system-info", "esr-system-info-id", "esr-system-info-2"); + + GraphTraversalSource g = graph.traversal(); + rules.addEdge(g, gnvf, vserver); + rules.addTreeEdge(g, vserver, tenant); + rules.addTreeEdge(g, tenant, cloudregion); + rules.addTreeEdge(g, cloudregion, esr); + + // Not expected in result + rules.addEdge(g, gnvf1, vserver1); + rules.addTreeEdge(g, vserver1, tenant1); + rules.addTreeEdge(g, tenant1, cloudregion1); + rules.addTreeEdge(g, cloudregion1, esr1); + // Not expected in result + + expectedResult.add(gnvf); + expectedResult.add(vserver); + expectedResult.add(tenant); + expectedResult.add(cloudregion); + expectedResult.add(esr); + + } + + @Override + protected String getQueryName() { + return "vnf-to-esr-system-info"; + } + + @Override + protected void addStartNode(GraphTraversal g) { + g.has("aai-node-type", "generic-vnf").has("vnf-id", "vnf-id-1"); + + } + + @Override + protected void addParam(Map params) { + return; + } } -- cgit 1.2.3-korg