    @Test
    public void testReadFeatures() throws IOException {

        FeatureReader<SimpleFeatureType, SimpleFeature> reader = csvDataStore.getFeatureReader();
        List<Coordinate> geometries = new ArrayList<Coordinate>();
        List<String> cities = new ArrayList<String>();
        List<String> numbers = new ArrayList<String>();

        while (reader.hasNext()) {
            SimpleFeature feature = reader.next();
            Point geometry = (Point) feature.getDefaultGeometry();
            geometries.add(geometry.getCoordinate());
            cities.add(feature.getAttribute("CITY").toString());
            numbers.add(feature.getAttribute("NUMBER").toString());
        }

        List<Coordinate> expectedCoordinates = makeExpectedCoordinates(46.066667, 11.116667,
                44.9441, -93.0852, 13.752222, 100.493889, 45.420833, -75.69, 44.9801, -93.251867,
                46.519833, 6.6335, 48.428611, -123.365556, -33.925278, 18.423889, -33.859972,
                151.211111);
        assertEquals("Unexpected coordinates", expectedCoordinates, geometries);

        List<String> expectedCities = Arrays
                .asList("Trento, St Paul, Bangkok, Ottawa, Minneapolis, Lausanne, Victoria, Cape Town, Sydney"
                        .split(", "));
        assertEquals("Unexecpted cities", expectedCities, cities);

        List<String> expectedNumbers = Arrays.asList("140, 125, 150, 200, 350, 560, 721, 550, 436"
                .split(", "));
        assertEquals("Unexpected numbers", expectedNumbers, numbers);
    }