package uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json.geojson;
import org.junit.Test;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
/**
* Tests for GeoJsonFeatureCollection.
* Copyright (c) 2014 University of Oxford
*/
public class GeoJsonFeatureCollectionTest {
@Test
public void constructorForGeoJsonFeatureCollectionBindsParametersCorrectly() throws Exception {
// Arrange
List<GeoJsonFeature> expectedFeatures = Arrays.asList(mock(GeoJsonFeature.class), mock(GeoJsonFeature.class));
GeoJsonCrs expectedCrs = mock(GeoJsonCrs.class);
List<Double> expectedBBox = Arrays.asList(1.0, 2.0, 3.0, 4.0);
// Act
GeoJsonFeatureCollection target = new GeoJsonFeatureCollection(expectedFeatures, expectedCrs, expectedBBox) {
// Create anonymous subclass of abstract class to act as testing proxy
};
// Assert
assertThat(target.getFeatures()).isEqualTo(expectedFeatures);
assertThat(target.getCrs()).isSameAs(expectedCrs);
assertThat(target.getBBox()).isEqualTo(expectedBBox);
assertThat(target.getType()).isSameAs(GeoJsonObjectType.FEATURE_COLLECTION);
assertThat(target.getFeatures().getClass().getCanonicalName())
.isEqualTo(Collections.unmodifiableList(expectedFeatures).getClass().getCanonicalName());
}
@Test
public void constructorForGeoJsonFeatureCollectionAcceptsNullOptionalParameters() throws Exception {
// Act
GeoJsonFeatureCollection target = new GeoJsonFeatureCollection(
Arrays.asList(mock(GeoJsonFeature.class), mock(GeoJsonFeature.class)), null, null) {
// Create anonymous subclass of abstract class to act as testing proxy
};
// Assert
assertThat(target.getCrs()).isNull();
assertThat(target.getBBox()).isNull();
}
}