package uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json.geojson; import com.fasterxml.jackson.core.JsonParser; import org.junit.Test; import java.io.IOException; import static com.googlecode.catchexception.CatchException.catchException; import static com.googlecode.catchexception.CatchException.caughtException; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; /** * Tests for GeoJsonGeometryTypeDeserializer. * Copyright (c) 2014 University of Oxford */ public class GeoJsonGeometryTypeDeserializerTest { @Test public void deserializeReturnsValueForCorrectStrings() throws Exception { // Arrange GeoJsonGeometryTypeDeserializer target = new GeoJsonGeometryTypeDeserializer(); JsonParser mockParser = mock(JsonParser.class); for (GeoJsonGeometryType expectation : GeoJsonGeometryType.values()) { when(mockParser.getText()).thenReturn(expectation.getGeoJsonName()); // Act GeoJsonGeometryType result = target.deserialize(mockParser, null); // Assert assertThat(result).isEqualTo(expectation); } } @Test public void deserializeThrowsForInvalidString() throws Exception { // Arrange GeoJsonGeometryTypeDeserializer target = new GeoJsonGeometryTypeDeserializer(); JsonParser mockParser = mock(JsonParser.class); when(mockParser.getText()).thenReturn("foo"); // Act catchException(target).deserialize(mockParser, null); // Assert assertThat(caughtException()).isInstanceOf(IOException.class); } }