Skip to content
Snippets Groups Projects
Commit 330ab994 authored by Neelesh Thakur's avatar Neelesh Thakur
Browse files

Merge branch 'spatial-location-array' into 'master'

Spatial location array

See merge request !644
parents 501681ed d1a7c3f6
No related branches found
No related tags found
2 merge requests!744Upgraded packages to mitigated vulns in netty, guava, snakeyaml,!644Spatial location array
Pipeline #171599 failed
......@@ -14,6 +14,8 @@
package org.opengroup.osdu.storage.conversion;
import static org.opengroup.osdu.storage.conversion.CrsConversionServiceErrorMessages.UNEXPECTED_DATA_FORMAT_JSON_OBJECT;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
......@@ -213,6 +215,11 @@ public class DpsConversionService {
JsonElement property = getDataSubProperty(attribute, dataObject);
if (property == null || property instanceof JsonNull) continue;
if (!property.isJsonObject()) {
validationErrors.add(String.format(UNEXPECTED_DATA_FORMAT_JSON_OBJECT, attribute));
continue;
}
JsonObject recordObj = property.getAsJsonObject();
if (recordObj.has(Constants.WGS84_COORDINATES) && !recordObj.get(Constants.WGS84_COORDINATES).isJsonNull()) {
validationErrors.add(CrsConversionServiceErrorMessages.WGS84COORDINATES_EXISTS);
......
......@@ -36,6 +36,7 @@ import java.util.List;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.opengroup.osdu.storage.conversion.CrsConversionServiceErrorMessages.UNEXPECTED_DATA_FORMAT_JSON_OBJECT;
@RunWith(MockitoJUnitRunner.class)
public class ConversionServiceTest {
......@@ -81,6 +82,7 @@ public class ConversionServiceTest {
private static final String COMBINED_ANY_CRS_META_FOR_RECORD = "{\"id\":\"geo-json-point-test\",\"kind\":\"geo-json-point:test:1.0.0\",\"acl\":{\"viewers\":[\"viewers@unittest.com\"],\"owners\":[\"owners@unittest.com\"]},\"legal\":{\"legaltags\":[\"unit-test-legal\"],\"otherRelevantDataCountries\":[\"AA\"]},\"data\":{\"SpudDate\":\"03/28/2012\",\"SpatialLocation\":{\"AsIngestedCoordinates\":{\"features\":[{\"geometry\":{\"coordinates\":[313405.9477893702,6544797.620047403,6.561679790026246],\"bbox\":null,\"type\":\"AnyCrsPoint\"},\"bbox\":null,\"properties\":{},\"type\":\"AnyCrsFeature\"}],\"bbox\":null,\"properties\":{},\"persistableReferenceCrs\":\"reference\",\"persistableReferenceUnitZ\":\"reference\",\"type\":\"AnyCrsFeatureCollection\"},\"msg\":\"testing record 2\",\"X\":16.00,\"Y\":10.00,\"Z\":0}},\"meta\":[{\"propertyValues\":[\"MM/dd/yyyy\"],\"persistableReference\":\"{\\\"type\\\": \\\"DAT\\\", \\\"format\\\": \\\"MM/dd/yyyy\\\"}\",\"uncertainty\":0,\"kind\":\"DateTime\",\"propertyNames\":[\"SpudDate\"]}]}";
private static final String COMBINED_ANY_CRS_CONVERTED_RECORD = "{\"acl\":{\"owners\":[\"owners@unittest.com\"],\"viewers\":[\"viewers@unittest.com\"]},\"data\":{\"SpudDate\":\"03/28/2012\",\"SpatialLocation\":{\"AsIngestedCoordinates\":{\"bbox\":null,\"features\":[{\"bbox\":null,\"geometry\":{\"bbox\":null,\"coordinates\":[313405.9477893702,6544797.620047403,6.561679790026246],\"type\":\"AnyCrsPoint\"},\"properties\":{},\"type\":\"AnyCrsFeature\"}],\"persistableReferenceCrs\":\"reference\",\"persistableReferenceUnitZ\":\"reference\",\"properties\":{},\"type\":\"AnyCrsFeatureCollection\"},\"msg\":\"testing record 2\",\"Wgs84Coordinates\":{\"bbox\":null,\"features\":[{\"bbox\":null,\"geometry\":{\"bbox\":null,\"coordinates\":[5.7500000010406245,59.000000000399105,1.9999999999999998],\"type\":\"Point\"},\"properties\":{},\"type\":\"Feature\"}],\"persistableReferenceCrs\":null,\"persistableReferenceUnitZ\":\"reference\",\"properties\":{},\"type\":\"FeatureCollection\"},\"X\":16,\"Y\":10,\"Z\":0}},\"id\":\"geo-json-point-test\",\"kind\":\"geo-json-point:test:1.0.0\",\"legal\":{\"legaltags\":[\"unit-test-legal\"],\"otherRelevantDataCountries\":[\"AA\"]},\"meta\":[{\"propertyValues\":[\"MM/dd/yyyy\"],\"persistableReference\":\"{\\\"type\\\": \\\"DAT\\\", \\\"format\\\": \\\"MM/dd/yyyy\\\"}\",\"uncertainty\":0,\"kind\":\"DateTime\",\"propertyNames\":[\"SpudDate\"]}]}";
private static final String COMBINED_ANY_CRS_META_FOR_CONVERTED_RECORD = "{\"acl\":{\"owners\":[\"owners@unittest.com\"],\"viewers\":[\"viewers@unittest.com\"]},\"data\":{\"SpudDate\":\"2012-03-28\",\"SpatialLocation\":{\"AsIngestedCoordinates\":{\"bbox\":null,\"features\":[{\"bbox\":null,\"geometry\":{\"bbox\":null,\"coordinates\":[313405.9477893702,6544797.620047403,6.561679790026246],\"type\":\"AnyCrsPoint\"},\"properties\":{},\"type\":\"AnyCrsFeature\"}],\"persistableReferenceCrs\":\"reference\",\"persistableReferenceUnitZ\":\"reference\",\"properties\":{},\"type\":\"AnyCrsFeatureCollection\"},\"msg\":\"testing record 2\",\"Wgs84Coordinates\":{\"bbox\":null,\"features\":[{\"bbox\":null,\"geometry\":{\"bbox\":null,\"coordinates\":[5.7500000010406245,59.000000000399105,1.9999999999999998],\"type\":\"Point\"},\"properties\":{},\"type\":\"Feature\"}],\"persistableReferenceCrs\":null,\"persistableReferenceUnitZ\":\"reference\",\"properties\":{},\"type\":\"FeatureCollection\"},\"X\":16,\"Y\":10,\"Z\":0}},\"id\":\"geo-json-point-test\",\"kind\":\"geo-json-point:test:1.0.0\",\"legal\":{\"legaltags\":[\"unit-test-legal\"],\"otherRelevantDataCountries\":[\"AA\"]},\"meta\":[{\"propertyValues\":[\"MM/dd/yyyy\"],\"persistableReference\":\"{\\\"format\\\":\\\"yyyy-MM-dd\\\",\\\"type\\\":\\\"DAT\\\"}\",\"uncertainty\":0,\"kind\":\"DateTime\",\"propertyNames\":[\"SpudDate\"]}]}";
private static final String SPATIAL_LOCATION_ARRAY_RECORD = "{\"id\":\"geo-json-point-test\",\"kind\":\"geo-json-point:test:1.0.0\",\"acl\":{\"viewers\":[\"viewers@unittest.com\"],\"owners\":[\"owners@unittest.com\"]},\"legal\":{\"legaltags\":[\"unit-test-legal\"],\"otherRelevantDataCountries\":[\"AA\"]},\"data\":{\"SpatialLocation\":[{\"AsIngestedCoordinates\":{\"features\":[{\"geometry\":{\"coordinates\":[313405.9477893702,6544797.620047403,6.561679790026246],\"bbox\":null,\"type\":\"AnyCrsPoint\"},\"bbox\":null,\"properties\":{},\"type\":\"AnyCrsFeature\"}],\"bbox\":null,\"properties\":{},\"persistableReferenceCrs\":\"reference\",\"persistableReferenceUnitZ\":\"reference\",\"type\":\"CrsFeatureCollection\"},\"msg\":\"testing record 2\",\"X\":16.00,\"Y\":10.00,\"Z\":0}]}}";
@Test
public void should_returnOriginalRecordsAndStatusesAsNoMetaBlock_whenProvidedRecordsWithoutMetaBlock() {
......@@ -300,6 +302,18 @@ public class ConversionServiceTest {
Assert.assertEquals(String.format(CrsConversionServiceErrorMessages.MISSING_AS_INGESTED_TYPE, type), result.getConversionStatuses().get(0).getErrors().get(0));
}
@Test
public void should_returnOriginalRecordsAndStatusesAsNoMetaAndAsIngestedCoordinatesBlocks_whenProvidedRecordsWithNonJsonObjectAttribute() {
this.originalRecords.add(this.jsonParser.parse(SPATIAL_LOCATION_ARRAY_RECORD).getAsJsonObject());
String type = "SpatialLocation";
RecordsAndStatuses result = this.sut.doConversion(this.originalRecords);
Assert.assertEquals(1, result.getConversionStatuses().size());
Assert.assertEquals(1, result.getRecords().size());
Assert.assertTrue(result.getRecords().get(0).toString().equalsIgnoreCase(SPATIAL_LOCATION_ARRAY_RECORD));
Assert.assertEquals(String.format(UNEXPECTED_DATA_FORMAT_JSON_OBJECT, type), result.getConversionStatuses().get(0).getErrors().get(0));
}
@Test
public void should_returnRecordsAfterCrsConversion_whenProvidedRecordWithAsIngestedCoordinatesBlockTypePoint() {
this.originalRecords.add(this.jsonParser.parse(ANY_CRS_POINT_RECORD).getAsJsonObject());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment