//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.consumers;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.junit.Test;
import uk.gov.dstl.baleen.exceptions.BaleenException;
import uk.gov.dstl.baleen.types.geo.Coordinate;
import uk.gov.dstl.baleen.types.semantic.Location;
public class PostgresTest {
@Test
public void testAddCRS() throws Exception{
String orig = "{\"type\":\"Polygon\",\"coordinates\":[[[1.0, 1.0],[2.0, 2.0],[3.0, 1.0],[1.0, 1.0]]]}";
String expected = "{\"type\":\"Polygon\",\"coordinates\":[[[1.0,1.0],[2.0,2.0],[3.0,1.0],[1.0,1.0]]],\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"EPSG:4326\"}}}";
assertEquals(expected, Postgres.addCrsToGeoJSON(orig));
}
@Test
public void testAddCRSWithExisting() throws Exception{
String geoJson = "{\"type\":\"Polygon\",\"coordinates\":[[[1.0,1.0],[2.0,2.0],[3.0,1.0],[1.0,1.0]]],\"crs\":{\"type\":\"name\",\"properties\":{\"name\":\"EPSG:4326\"}}}";
assertEquals(geoJson, Postgres.addCrsToGeoJSON(geoJson));
}
@Test
public void testAddCRSMalformed() throws Exception{
String geoJson = "{\"type\":\"Polygon\" \"coordinates\":[1.0,1.0],[2.0,2.0],[3.0,1.0],[1.0,1.0]]]}";
try{
Postgres.addCrsToGeoJSON(geoJson);
fail("Expected exception not thrown");
}catch(BaleenException e){
// Do nothing
}
assertEquals(null, Postgres.addCrsToGeoJSON(null));
assertEquals("", Postgres.addCrsToGeoJSON(""));
}
@Test
public void testGetSuperclass() throws Exception{
assertEquals(Location.class, Postgres.getSuperclass(Location.class, Coordinate.class));
assertEquals(Location.class, Postgres.getSuperclass(Coordinate.class, Location.class));
assertEquals(Location.class, Postgres.getSuperclass(Location.class, Location.class));
assertEquals(Location.class, Postgres.getSuperclass(Location.class, null));
assertEquals(Location.class, Postgres.getSuperclass(null, Location.class));
assertEquals(null, Postgres.getSuperclass(null, null));
}
}