private SimpleFeature transform(InlineVectorTransform transform, Object... values) throws Exception { Object[] args = new Object[values.length / 3]; for (int i = 0; i < values.length; i += 3) { args[i] = values[i + 2]; } return transformType(transform, buildType(values), args); }
@Test public void testDateFormatTransform() throws Exception { SimpleFeature f = transform( new DateFormatTransform("date", null), "date", String.class, "1980-09-10"); GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC")); cal.setTime((Date) f.getAttribute("date")); assertEquals(1980, cal.get(GregorianCalendar.YEAR)); assertEquals(9, cal.get(GregorianCalendar.MONTH) + 1); // 0-based month! assertEquals(10, cal.get(GregorianCalendar.DAY_OF_MONTH)); }
@Test public void testReprojectTransform() throws Exception { CoordinateReferenceSystem crs = CRS.decode("EPSG:3857"); sftb.setName("ft"); sftb.add("geom", Geometry.class, CRS.decode("EPSG:4326")); SimpleFeatureType type = sftb.buildFeatureType(); SimpleFeature f = transformType( new ReprojectTransform(crs), (SimpleFeatureType) type, new GeometryFactory().createPoint(new Coordinate(1d, 1d))); Point p = (Point) f.getAttribute("geom"); assertEquals(111319.49079327357, p.getX()); assertEquals(111325.14286638486, p.getY()); }
@Test public void testIntegerFieldToDateTransform() throws Exception { SimpleFeature f = transform(new IntegerFieldToDateTransform("number"), "number", Integer.class, 1999); GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC")); cal.setTime((Date) f.getAttribute("number")); assertEquals(1999, cal.get(GregorianCalendar.YEAR)); assertEquals(1, cal.get(GregorianCalendar.MONTH) + 1); // 0-based month! assertEquals(1, cal.get(GregorianCalendar.DAY_OF_MONTH)); }
@Test public void testNumberFormatTransform() throws Exception { SimpleFeature f = transform( new NumberFormatTransform("number", Double.class), "number", String.class, "1234.5678"); assertEquals(1234.5678, f.getAttribute("number")); }