String wkt = "GEOGCS[\"WGS 84\", DATUM[\"World Geodetic System 1984\", SPHEROID[\"WGS 84\", 6378137.0, 298.257223563]], PRIMEM[\"Greenwich\", 0.0], UNIT[\"degree\", 0.017453292519943295], AXIS[\"Geodetic longitude\", EAST], AXIS[\"Geodetic latitude\", NORTH]]";
CoordinateReferenceSystem crs = CRS.parseWKT(wkt);
SimpleFeatureType newFt = FeatureTypes.transform(ft, crs);
reprojector = new ReprojectingFilterVisitor(ff, newFt);
BBOX bbox = ff.bbox(ff.property("geom"), 10, 15, 20, 25, "urn:x-ogc:def:crs:EPSG:6.11.2:4326");
Filter clone = (Filter) bbox.accept(reprojector, null);
assertNotSame(bbox, clone);
BBOX clonedBbox = (BBOX) clone;
assertEquals(bbox.getPropertyName(), clonedBbox.getPropertyName());
assertTrue(15 == clonedBbox.getMinX());
assertTrue(10 == clonedBbox.getMinY());
assertTrue(25 == clonedBbox.getMaxX());
assertTrue(20 == clonedBbox.getMaxY());
// the srs code cannot be found, but it's legal to use a WKT description instead
CoordinateReferenceSystem reprojected = CRS.parseWKT(clonedBbox.getSRS());
assertTrue(CRS.equalsIgnoreMetadata(crs, reprojected));
}