X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Forg%2Fonap%2Faai%2Fsa%2Fsearchdbabstraction%2Fsearchapi%2FQueryTest.java;h=e229348576fda1290ac1f3fd43804417e8d95dc4;hb=f637a36c9df966c341727910e30241b63cc49c06;hp=183317aee1afdc6983fd4db71607847418f427ac;hpb=d6348739c632fb69c8833078effbb902adc7f702;p=aai%2Fsearch-data-service.git diff --git a/src/test/java/org/onap/aai/sa/searchdbabstraction/searchapi/QueryTest.java b/src/test/java/org/onap/aai/sa/searchdbabstraction/searchapi/QueryTest.java index 183317a..e229348 100644 --- a/src/test/java/org/onap/aai/sa/searchdbabstraction/searchapi/QueryTest.java +++ b/src/test/java/org/onap/aai/sa/searchdbabstraction/searchapi/QueryTest.java @@ -1,4 +1,4 @@ -/** +/** * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ @@ -20,26 +20,21 @@ */ package org.onap.aai.sa.searchdbabstraction.searchapi; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Test; -import org.onap.aai.sa.searchdbabstraction.searchapi.ParsedQuery; -import org.onap.aai.sa.searchdbabstraction.searchapi.RangeQuery; -import org.onap.aai.sa.searchdbabstraction.searchapi.TermQuery; - import java.io.IOException; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import org.junit.Test; public class QueryTest { /** - * This test validates that we are able to marshal json structures - * representing term queries into POJOs and that we can then - * unmarshal those POJOs into ElasticSearch syntax. + * This test validates that we are able to marshal json structures representing term queries into POJOs and that we + * can then unmarshal those POJOs into ElasticSearch syntax. * * @throws JsonParseException * @throws JsonMappingException @@ -67,7 +62,9 @@ public class QueryTest { // Validate that we can marshal a term query where the supplied value // is an Integer. TermQuery integerTermQuery = mapper.readValue(termQueryWithIntegerValueJson, TermQuery.class); - assertTrue("Expected value to be of type Integer, but was type " + integerTermQuery.getValue().getClass().getName(), + assertTrue( + "Expected value to be of type Integer, but was type " + + integerTermQuery.getValue().getClass().getName(), integerTermQuery.getValue() instanceof Integer); assertEquals(intValue, integerTermQuery.getValue()); @@ -77,7 +74,8 @@ public class QueryTest { // Validate that we can marshal a term query where the supplied value // is a Double. TermQuery doubleTermQuery = mapper.readValue(termQueryWithDoubleValueJson, TermQuery.class); - assertTrue("Expected value to be of type Double, but was type " + doubleTermQuery.getValue().getClass().getName(), + assertTrue( + "Expected value to be of type Double, but was type " + doubleTermQuery.getValue().getClass().getName(), doubleTermQuery.getValue() instanceof Double); assertEquals(doubleValue, doubleTermQuery.getValue()); assertTrue("ElasticSearch term query translation does not match the expected result", @@ -86,7 +84,8 @@ public class QueryTest { // Validate that we can marshal a term query where the supplied value // is a String literal. TermQuery stringTermQuery = mapper.readValue(termQueryWithStringValueJson, TermQuery.class); - assertTrue("Expected value to be of type String, but was type " + stringTermQuery.getValue().getClass().getName(), + assertTrue( + "Expected value to be of type String, but was type " + stringTermQuery.getValue().getClass().getName(), stringTermQuery.getValue() instanceof String); assertEquals(stringValue, stringTermQuery.getValue()); assertTrue("ElasticSearch term query translation does not match the expected result", @@ -97,9 +96,8 @@ public class QueryTest { /** - * This test validates that we are able to marshal json structures - * representing parsed queries into POJOs and that we can then - * unmarshal those POJOs into ElasticSearch syntax. + * This test validates that we are able to marshal json structures representing parsed queries into POJOs and that + * we can then unmarshal those POJOs into ElasticSearch syntax. * * @throws JsonParseException * @throws JsonMappingException @@ -112,25 +110,25 @@ public class QueryTest { String queryString = "The query string"; String queryJson = "{\"field\": \"" + field + "\", \"query-string\": \"" + queryString + "\"}"; - String queryExpectedES = "{\"query_string\": {\"default_field\": \"" + field + "\", \"query\": \"" + queryString + "\"}}"; + String queryExpectedES = + "{\"query_string\": {\"default_field\": \"" + field + "\", \"query\": \"" + queryString + "\"}}"; ObjectMapper mapper = new ObjectMapper(); ParsedQuery pq = mapper.readValue(queryJson, ParsedQuery.class); assertTrue("Unexpected marshalled value for 'field' - expected: " + field + " actual: " + pq.getField(), field.equals(pq.getField())); - assertTrue("Unexpected marshalled value for 'query-string' - expected: " + queryString + " actual: " + pq.getQueryString(), - queryString.equals(pq.getQueryString())); - assertTrue("Unexpected ElasticSearch syntax. Expected: " + queryExpectedES + " Actual: " + pq.toElasticSearch(), + assertTrue("Unexpected marshalled value for 'query-string' - expected: " + queryString + " actual: " + + pq.getQueryString(), queryString.equals(pq.getQueryString())); + assertTrue( + "Unexpected ElasticSearch syntax. Expected: " + queryExpectedES + " Actual: " + pq.toElasticSearch(), queryExpectedES.equals(pq.toElasticSearch())); } /** - * This test validates that a ranged query cannot be parsed with values - * for both the 'gte' and 'gt' fields or the 'lte' and 'lt' fields, and - * that we do not allow mixing of numeric and date types in the same - * query. + * This test validates that a ranged query cannot be parsed with values for both the 'gte' and 'gt' fields or the + * 'lte' and 'lt' fields, and that we do not allow mixing of numeric and date types in the same query. * * @throws JsonParseException * @throws IOException @@ -138,8 +136,10 @@ public class QueryTest { @Test public void rangeQueryConflictingBoundsTest() throws JsonParseException, IOException { - String invalidGTAndGTE = "{ \"field\": \"timestamp\", \"gte\": \"2016-10-06T00:00:00.558+03:00\", \"gt\": \"2016-10-06T23:59:59.558+03:00\"}"; - String invalidLTAndLTE = "{ \"field\": \"timestamp\", \"lte\": \"2016-10-06T00:00:00.558+03:00\", \"lt\": \"2016-10-06T23:59:59.558+03:00\"}"; + String invalidGTAndGTE = + "{ \"field\": \"timestamp\", \"gte\": \"2016-10-06T00:00:00.558+03:00\", \"gt\": \"2016-10-06T23:59:59.558+03:00\"}"; + String invalidLTAndLTE = + "{ \"field\": \"timestamp\", \"lte\": \"2016-10-06T00:00:00.558+03:00\", \"lt\": \"2016-10-06T23:59:59.558+03:00\"}"; String invalidTypes = "{ \"field\": \"timestamp\", \"lte\": 5, \"gte\": \"2016-10-06T23:59:59.558+03:00\"}"; ObjectMapper mapper = new ObjectMapper(); @@ -148,7 +148,7 @@ public class QueryTest { // 'greater than' and 'greater than and equal to' operators. boolean gotExpectedException = false; try { - RangeQuery badRangeQuery = mapper.readValue(invalidGTAndGTE, RangeQuery.class); + mapper.readValue(invalidGTAndGTE, RangeQuery.class); } catch (JsonMappingException e) { gotExpectedException = true; } @@ -159,7 +159,7 @@ public class QueryTest { // 'less than' and 'less than and equal to' operators. gotExpectedException = false; try { - RangeQuery badRangeQuery = mapper.readValue(invalidLTAndLTE, RangeQuery.class); + mapper.readValue(invalidLTAndLTE, RangeQuery.class); } catch (JsonMappingException e) { gotExpectedException = true; } @@ -170,7 +170,7 @@ public class QueryTest { // in the same query. gotExpectedException = false; try { - RangeQuery badRangeQuery = mapper.readValue(invalidTypes, RangeQuery.class); + mapper.readValue(invalidTypes, RangeQuery.class); } catch (JsonMappingException e) { gotExpectedException = true; } @@ -182,8 +182,8 @@ public class QueryTest { /** - * This test validates that date range queries can be marshalled to a Java - * POJO and unmarshalled to ElasticSearch syntax. + * This test validates that date range queries can be marshalled to a Java POJO and unmarshalled to ElasticSearch + * syntax. * * @throws JsonParseException * @throws JsonMappingException @@ -200,8 +200,8 @@ public class QueryTest { // Generate a date range query using 'greater than or equal' and 'less // than or equal' operations. - String dateRangeJson = - "{ \"field\": \"" + field + "\", \"gte\": \"" + greaterThanDate + "\", \"lte\": \"" + lessThanDate + "\"}"; + String dateRangeJson = "{ \"field\": \"" + field + "\", \"gte\": \"" + greaterThanDate + "\", \"lte\": \"" + + lessThanDate + "\"}"; String dateRangeExpectedES = "{\"range\": {\"timestamp\": {\"gte\": \"2016-10-06T00:00:00.558+03:00\", \"lte\": \"2016-10-06T23:59:59.558+03:00\"}}}"; @@ -209,24 +209,26 @@ public class QueryTest { // the generated ElasticSearch syntax looks as expected. RangeQuery dateRangeQuery = mapper.readValue(dateRangeJson, RangeQuery.class); - assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + dateRangeQuery.getField(), - field.equals(dateRangeQuery.getField())); - assertTrue("Unexpected type for 'gte' value. Expected: String Actual: " + dateRangeQuery.getGte().getClass().getName(), - dateRangeQuery.getGte() instanceof String); - assertTrue("Unexpected type for 'lte' value. Expected: String Actual: " + dateRangeQuery.getLte().getClass().getName(), - dateRangeQuery.getLte() instanceof String); - assertTrue("Unexpected marshalled value for 'gte'. Expected: " + greaterThanDate + " Actual: " + dateRangeQuery.getGte(), - greaterThanDate.equals(dateRangeQuery.getGte())); - assertTrue("Unexpected marshalled value for 'lte'. Expected: " + lessThanDate + " Actual: " + dateRangeQuery.getLte(), - lessThanDate.equals(dateRangeQuery.getLte())); - assertTrue("Unexpected ElasticSearch syntax. Expected: " + dateRangeExpectedES + " Actual: " + dateRangeQuery.toElasticSearch(), + assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + + dateRangeQuery.getField(), field.equals(dateRangeQuery.getField())); + assertTrue("Unexpected type for 'gte' value. Expected: String Actual: " + + dateRangeQuery.getGte().getClass().getName(), dateRangeQuery.getGte() instanceof String); + assertTrue("Unexpected type for 'lte' value. Expected: String Actual: " + + dateRangeQuery.getLte().getClass().getName(), dateRangeQuery.getLte() instanceof String); + assertTrue("Unexpected marshalled value for 'gte'. Expected: " + greaterThanDate + " Actual: " + + dateRangeQuery.getGte(), greaterThanDate.equals(dateRangeQuery.getGte())); + assertTrue("Unexpected marshalled value for 'lte'. Expected: " + lessThanDate + " Actual: " + + dateRangeQuery.getLte(), lessThanDate.equals(dateRangeQuery.getLte())); + assertTrue( + "Unexpected ElasticSearch syntax. Expected: " + dateRangeExpectedES + " Actual: " + + dateRangeQuery.toElasticSearch(), dateRangeExpectedES.equals(dateRangeQuery.toElasticSearch())); // Generate a date range query using 'greater than' and 'less than or // equal' operations. - dateRangeJson = - "{ \"field\": \"" + field + "\", \"gt\": \"" + greaterThanDate + "\", \"lte\": \"" + lessThanDate + "\"}"; + dateRangeJson = "{ \"field\": \"" + field + "\", \"gt\": \"" + greaterThanDate + "\", \"lte\": \"" + + lessThanDate + "\"}"; dateRangeExpectedES = "{\"range\": {\"timestamp\": {\"gt\": \"2016-10-06T00:00:00.558+03:00\", \"lte\": \"2016-10-06T23:59:59.558+03:00\"}}}"; @@ -234,52 +236,54 @@ public class QueryTest { // the generated ElasticSearch syntax looks as expected. dateRangeQuery = mapper.readValue(dateRangeJson, RangeQuery.class); - assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + dateRangeQuery.getField(), - field.equals(dateRangeQuery.getField())); + assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + + dateRangeQuery.getField(), field.equals(dateRangeQuery.getField())); - assertTrue("Unexpected type for 'gt' value. Expected: String Actual: " + dateRangeQuery.getGt().getClass().getName(), - dateRangeQuery.getGt() instanceof String); + assertTrue("Unexpected type for 'gt' value. Expected: String Actual: " + + dateRangeQuery.getGt().getClass().getName(), dateRangeQuery.getGt() instanceof String); - assertTrue("Unexpected type for 'lte' value. Expected: String Actual: " + dateRangeQuery.getLte().getClass().getName(), - dateRangeQuery.getLte() instanceof String); + assertTrue("Unexpected type for 'lte' value. Expected: String Actual: " + + dateRangeQuery.getLte().getClass().getName(), dateRangeQuery.getLte() instanceof String); - assertTrue("Unexpected marshalled value for 'gt'. Expected: " + greaterThanDate + " Actual: " + dateRangeQuery.getGt(), - greaterThanDate.equals(dateRangeQuery.getGt())); + assertTrue("Unexpected marshalled value for 'gt'. Expected: " + greaterThanDate + " Actual: " + + dateRangeQuery.getGt(), greaterThanDate.equals(dateRangeQuery.getGt())); - assertTrue("Unexpected marshalled value for 'lte'. Expected: " + lessThanDate + " Actual: " + dateRangeQuery.getLte(), - lessThanDate.equals(dateRangeQuery.getLte())); + assertTrue("Unexpected marshalled value for 'lte'. Expected: " + lessThanDate + " Actual: " + + dateRangeQuery.getLte(), lessThanDate.equals(dateRangeQuery.getLte())); - assertTrue("Unexpected ElasticSearch syntax. Expected: " + dateRangeExpectedES + " Actual: " + dateRangeQuery.toElasticSearch(), + assertTrue( + "Unexpected ElasticSearch syntax. Expected: " + dateRangeExpectedES + " Actual: " + + dateRangeQuery.toElasticSearch(), dateRangeExpectedES.equals(dateRangeQuery.toElasticSearch())); // Generate a date range query using only a 'greater than' operation. - dateRangeJson = - "{ \"field\": \"" + field + "\", \"gt\": \"" + greaterThanDate + "\"}"; - dateRangeExpectedES = - "{\"range\": {\"timestamp\": {\"gt\": \"2016-10-06T00:00:00.558+03:00\"}}}"; + dateRangeJson = "{ \"field\": \"" + field + "\", \"gt\": \"" + greaterThanDate + "\"}"; + dateRangeExpectedES = "{\"range\": {\"timestamp\": {\"gt\": \"2016-10-06T00:00:00.558+03:00\"}}}"; // Validate that the query is marshalled correctly to the POJO and that // the generated ElasticSearch syntax looks as expected. dateRangeQuery = mapper.readValue(dateRangeJson, RangeQuery.class); - assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + dateRangeQuery.getField(), - field.equals(dateRangeQuery.getField())); + assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + + dateRangeQuery.getField(), field.equals(dateRangeQuery.getField())); - assertTrue("Unexpected type for 'gt' value. Expected: String Actual: " + dateRangeQuery.getGt().getClass().getName(), - dateRangeQuery.getGt() instanceof String); + assertTrue("Unexpected type for 'gt' value. Expected: String Actual: " + + dateRangeQuery.getGt().getClass().getName(), dateRangeQuery.getGt() instanceof String); - assertTrue("Unexpected marshalled value for 'gt'. Expected: " + greaterThanDate + " Actual: " + dateRangeQuery.getGt(), - greaterThanDate.equals(dateRangeQuery.getGt())); + assertTrue("Unexpected marshalled value for 'gt'. Expected: " + greaterThanDate + " Actual: " + + dateRangeQuery.getGt(), greaterThanDate.equals(dateRangeQuery.getGt())); - assertTrue("Unexpected ElasticSearch syntax. Expected: " + dateRangeExpectedES + " Actual: " + dateRangeQuery.toElasticSearch(), + assertTrue( + "Unexpected ElasticSearch syntax. Expected: " + dateRangeExpectedES + " Actual: " + + dateRangeQuery.toElasticSearch(), dateRangeExpectedES.equals(dateRangeQuery.toElasticSearch())); } /** - * This test validates that numeric range queries can be marshalled to a Java - * POJO and unmarshalled to ElasticSearch syntax. + * This test validates that numeric range queries can be marshalled to a Java POJO and unmarshalled to ElasticSearch + * syntax. * * @throws JsonParseException * @throws JsonMappingException @@ -305,17 +309,23 @@ public class QueryTest { // the generated ElasticSearch syntax looks as expected. RangeQuery numericRangeQuery = mapper.readValue(numericRangeJson, RangeQuery.class); - assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + numericRangeQuery.getField(), - field.equals(numericRangeQuery.getField())); - assertTrue("Unexpected type for 'gte' value. Expected: Integer Actual: " + numericRangeQuery.getGte().getClass().getName(), + assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + + numericRangeQuery.getField(), field.equals(numericRangeQuery.getField())); + assertTrue( + "Unexpected type for 'gte' value. Expected: Integer Actual: " + + numericRangeQuery.getGte().getClass().getName(), numericRangeQuery.getGte() instanceof Integer); - assertTrue("Unexpected type for 'lte' value. Expected: Integer Actual: " + numericRangeQuery.getLte().getClass().getName(), + assertTrue( + "Unexpected type for 'lte' value. Expected: Integer Actual: " + + numericRangeQuery.getLte().getClass().getName(), numericRangeQuery.getLte() instanceof Integer); - assertEquals("Unexpected marshalled value for 'gte'. Expected: " + greaterThanInt + " Actual: " + numericRangeQuery.getGte(), - greaterThanInt, numericRangeQuery.getGte()); - assertEquals("Unexpected marshalled value for 'lte'. Expected: " + lessThanInt + " Actual: " + numericRangeQuery.getLte(), - lessThanInt, numericRangeQuery.getLte()); - assertTrue("Unexpected ElasticSearch syntax. Expected: " + numericRangeExpectedES + " Actual: " + numericRangeQuery.toElasticSearch(), + assertEquals("Unexpected marshalled value for 'gte'. Expected: " + greaterThanInt + " Actual: " + + numericRangeQuery.getGte(), greaterThanInt, numericRangeQuery.getGte()); + assertEquals("Unexpected marshalled value for 'lte'. Expected: " + lessThanInt + " Actual: " + + numericRangeQuery.getLte(), lessThanInt, numericRangeQuery.getLte()); + assertTrue( + "Unexpected ElasticSearch syntax. Expected: " + numericRangeExpectedES + " Actual: " + + numericRangeQuery.toElasticSearch(), numericRangeExpectedES.equals(numericRangeQuery.toElasticSearch())); @@ -326,29 +336,33 @@ public class QueryTest { // equal' operations. numericRangeJson = "{ \"field\": \"" + field + "\", \"gt\": " + greaterThanDouble + ", \"lte\": " + lessThanDouble + "}"; - numericRangeExpectedES = - "{\"range\": {\"" + field + "\": {\"gt\": " + greaterThanDouble + ", \"lte\": " + lessThanDouble + "}}}"; + numericRangeExpectedES = "{\"range\": {\"" + field + "\": {\"gt\": " + greaterThanDouble + ", \"lte\": " + + lessThanDouble + "}}}"; // Validate that the query is marshalled correctly to the POJO and that // the generated ElasticSearch syntax looks as expected. numericRangeQuery = mapper.readValue(numericRangeJson, RangeQuery.class); - assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + numericRangeQuery.getField(), - field.equals(numericRangeQuery.getField())); + assertTrue("Unexpected marshalled value for 'field'. Expected: " + field + " Actual: " + + numericRangeQuery.getField(), field.equals(numericRangeQuery.getField())); - assertTrue("Unexpected type for 'gt' value. Expected: Double Actual: " + numericRangeQuery.getGt().getClass().getName(), - numericRangeQuery.getGt() instanceof Double); + assertTrue("Unexpected type for 'gt' value. Expected: Double Actual: " + + numericRangeQuery.getGt().getClass().getName(), numericRangeQuery.getGt() instanceof Double); - assertTrue("Unexpected type for 'lte' value. Expected: Double Actual: " + numericRangeQuery.getLte().getClass().getName(), + assertTrue( + "Unexpected type for 'lte' value. Expected: Double Actual: " + + numericRangeQuery.getLte().getClass().getName(), numericRangeQuery.getLte() instanceof Double); - assertEquals("Unexpected marshalled value for 'gt'. Expected: " + greaterThanDouble + " Actual: " + numericRangeQuery.getGt(), - greaterThanDouble, numericRangeQuery.getGt()); + assertEquals("Unexpected marshalled value for 'gt'. Expected: " + greaterThanDouble + " Actual: " + + numericRangeQuery.getGt(), greaterThanDouble, numericRangeQuery.getGt()); - assertEquals("Unexpected marshalled value for 'lte'. Expected: " + lessThanDouble + " Actual: " + numericRangeQuery.getLte(), - lessThanDouble, numericRangeQuery.getLte()); + assertEquals("Unexpected marshalled value for 'lte'. Expected: " + lessThanDouble + " Actual: " + + numericRangeQuery.getLte(), lessThanDouble, numericRangeQuery.getLte()); - assertTrue("Unexpected ElasticSearch syntax. Expected: " + numericRangeExpectedES + " Actual: " + numericRangeQuery.toElasticSearch(), + assertTrue( + "Unexpected ElasticSearch syntax. Expected: " + numericRangeExpectedES + " Actual: " + + numericRangeQuery.toElasticSearch(), numericRangeExpectedES.equals(numericRangeQuery.toElasticSearch())); }