From 82658daad05f982a8358581623f44a1554238a48 Mon Sep 17 00:00:00 2001 From: Edwin Lawrance Date: Thu, 13 Sep 2018 11:19:43 +0100 Subject: Fix to not remove whitespaces in the payload to ES Change-Id: I3547e79ff27220a49539d9cfdf48ac534f155f10 Issue-ID: AAI-1596 Signed-off-by: Edwin Lawrance --- .../util/ElasticSearchPayloadTranslatorTest.java | 19 ++++++++++----- .../resources/json/es-payload-translation.json | 22 ++++++----------- src/test/resources/json/index-mapping.json | 28 ++++++++++++++++++++++ 3 files changed, 48 insertions(+), 21 deletions(-) create mode 100644 src/test/resources/json/index-mapping.json (limited to 'src/test') diff --git a/src/test/java/org/onap/aai/sa/searchdbabstraction/util/ElasticSearchPayloadTranslatorTest.java b/src/test/java/org/onap/aai/sa/searchdbabstraction/util/ElasticSearchPayloadTranslatorTest.java index 11b2acb..ba5cb48 100644 --- a/src/test/java/org/onap/aai/sa/searchdbabstraction/util/ElasticSearchPayloadTranslatorTest.java +++ b/src/test/java/org/onap/aai/sa/searchdbabstraction/util/ElasticSearchPayloadTranslatorTest.java @@ -21,16 +21,19 @@ package org.onap.aai.sa.searchdbabstraction.util; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertFalse; import java.io.File; +import java.io.FileInputStream; +import org.apache.commons.io.IOUtils; import org.junit.Before; import org.junit.Test; import org.onap.aai.sa.rest.TestUtils; public class ElasticSearchPayloadTranslatorTest { - private final String SIMPLE_DOC_SCHEMA_JSON = "src/test/resources/json/simpleDocument.json"; + private final String SIMPLE_DOC_SCHEMA_JSON = "src/test/resources/json/index-mapping.json"; @Before public void setup() throws Exception { @@ -38,13 +41,17 @@ public class ElasticSearchPayloadTranslatorTest { } @Test - public void testPayloadTranslation_FromStringToText() throws Exception { + public void testPayloadTranslation() throws Exception { + String expectedErrMsg = "Sample error message for whitespace check"; File schemaFile = new File(SIMPLE_DOC_SCHEMA_JSON); - String documentJson = TestUtils.readFileToString(schemaFile); - assertTrue(documentJson.contains("\"data-type\":\"string\"")); - assertTrue(documentJson.contains("\"searchable\":true")); + String documentJson = IOUtils.toString(new FileInputStream(schemaFile), "UTF-8"); + assertTrue(documentJson.contains("\"type\": \"string\"")); + assertTrue(documentJson.contains("\"index\": \"analyzed\"")); String translatedPayload = ElasticSearchPayloadTranslator.translateESPayload(documentJson); - assertTrue(translatedPayload.contains("\"data-type\":\"text\"")); + assertTrue(translatedPayload.contains("\"type\":\"text\"")); assertTrue(translatedPayload.contains("\"index\":true")); + assertTrue(translatedPayload.contains("\"fielddata\":true")); + assertFalse(documentJson.contains("\"index\":\"analyzed\"")); + assertTrue(translatedPayload.contains("\"errMsg\":\""+expectedErrMsg+"\"")); } } diff --git a/src/test/resources/json/es-payload-translation.json b/src/test/resources/json/es-payload-translation.json index e5290b0..58ed8f6 100644 --- a/src/test/resources/json/es-payload-translation.json +++ b/src/test/resources/json/es-payload-translation.json @@ -1,24 +1,16 @@ { - "attr-translations": [ - { - "from": "\"data-type\":\"string\"", - "to": "\"data-type\":\"text\",\"fielddata\":true" - }, + "attr-translations": [ { - "from": "\"type\":\"string\",\"index\":\"analyzed\"", - "to": "\"type\":\"text\",\"index\":\"true\",\"fielddata\":true" + "query": "$..[?(@.type=='string' && @.index=='analyzed')]", + "update": {"type": "text", "index": true, "fielddata": true} }, { - "from": "\"type\":\"string\",\"index\":\"not_analyzed\"", - "to": "\"type\":\"keyword\",\"index\":\"true\"" + "query": "$..[?(@.type=='string' && @.index=='not_analyzed')]", + "update": {"type": "keyword", "index": true} }, { - "from": "\"type\":\"string\"", - "to": "\"type\":\"text\",\"fielddata\":true" - }, - { - "from": "searchable", - "to": "index" + "query": "$..[?(@.type=='string' && !@.index)]", + "update": {"type": "text", "fielddata": true} } ] } \ No newline at end of file diff --git a/src/test/resources/json/index-mapping.json b/src/test/resources/json/index-mapping.json new file mode 100644 index 0000000..e447092 --- /dev/null +++ b/src/test/resources/json/index-mapping.json @@ -0,0 +1,28 @@ +{ + "fields": [ + {"name": "validationId", "type": "string", "searchable": false}, + {"name": "validationTimestamp1", "type": "date", "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||MM\/dd\/yyyy||yyyyMMdd'T'HHmmssZ"}, + {"name": "entityId", "type": "nested"}, + {"name": "entityType", "type": "string", "index": "analyzed"}, + {"name": "entityLink", "type": "string"}, + + {"name": "resourceVersion", "type": "string", "index": "not_analyzed"}, + {"name": "violations", "type": "nested", "sub-fields": [ + {"name": "violationId", "type": "string"}, + {"name": "violationTimestamp", "type": "date", "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||MM\/dd\/yyyy||yyyyMMdd'T'HHmmssZ"}, + {"name": "modelName", "type": "string"}, + {"name": "category", "type": "string"}, + {"name": "severity", "type": "string"}, + {"name": "violationType", "type": "string"}, + {"name": "validationRule", "type": "string"}, + {"name": "violationDetails", "type": "nested", "sub-fields": [ + {"name": "entityId", "type": "nested"}, + {"name": "entityType", "type": "string"}, + {"name": "modelName", "type": "string"}, + {"name": "MISSING_REL", "type": "string"} + ]}, + {"name": "errorMessage", "type": "string", "errMsg": "Sample error message for whitespace check"} + ]} + ] + +} -- cgit 1.2.3-korg