package com.urbanairship.api.location.parse; import com.urbanairship.api.common.parse.APIParsingException; import com.urbanairship.api.location.model.LocationView; import org.codehaus.jackson.map.ObjectMapper; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; public class LocationViewDeserializerTest { private static final ObjectMapper MAPPER = LocationObjectMapper.getInstance(); @Test public void testDeserialization() throws Exception { String json = "{\n" + " \"type\":\"Feature\",\n" + " \"id\":\"4oFkxX7RcUdirjtaenEQIV\",\n" + " \"properties\":{\n" + " \"source\":\"tiger.census.gov\",\n" + " \"boundary_type_string\":\"City/Place\",\n" + " \"name\":\"San Francisco\",\n" + " \"context\":{\n" + " \"us_state_name\":\"California\",\n" + " \"us_state\":\"CA\"\n" + " },\n" + " \"boundary_type\":\"city\"\n" + " },\n" + " \"bounds\":[\n" + " 37.63983,\n" + " -123.173825,\n" + " 37.929824,\n" + " -122.28178\n" + " ],\n" + " \"centroid\":[\n" + " 37.759715,\n" + " -122.693976\n" + " ]\n" + "}"; LocationView target = MAPPER.readValue(json, LocationView.class); assertNotNull(target); assertEquals( "BoundedBox{cornerOne=Point{latitude=37.63983, longitude=-123.173825}, cornerTwo=Point{latitude=37.929824, longitude=-122.28178}}", target.getBounds().get().toString()); assertEquals("Point{latitude=37.759715, longitude=-122.693976}", target.getCentroid().get().toString()); assertEquals("4oFkxX7RcUdirjtaenEQIV", target.getLocationId()); assertEquals("Feature", target.getLocationType()); assertEquals( "{\"source\":\"tiger.census.gov\",\"boundary_type_string\":\"City/Place\",\"name\":\"San Francisco\",\"context\":{\"us_state_name\":\"California\",\"us_state\":\"CA\"},\"boundary_type\":\"city\"}", target.getPropertiesJsonString()); } @Test(expected = APIParsingException.class) public void testImproperData() throws Exception { String json = "{\n" + " \"type\":\"Feature\",\n" + " \"id\":\"4oFkxX7RcUdirjtaenEQIV\",\n" + " \"properties\":{\n" + " \"source\":\"tiger.census.gov\",\n" + " \"boundary_type_string\":\"City/Place\",\n" + " \"name\":\"San Francisco\",\n" + " \"context\":{\n" + " \"us_state_name\":\"California\",\n" + " \"us_state\":\"CA\"\n" + " },\n" + " \"boundary_type\":\"city\"\n" + " },\n" + " \"bounds\":[\n" + " 37.63983,\n" + " -123.173825,\n" + " 37.929824\n" + " ],\n" + " \"centroid\":[\n" + " -122.693976\n" + " ]\n" + "}"; LocationView target = MAPPER.readValue(json, LocationView.class); assertNotNull(target); } }