protected void assertAttributeValuesEqual(Object expected, Object actual) { if (expected == null) { assertNull(actual); return; } if (expected instanceof Geometry) { assertTrue(((Geometry) expected).equals((Geometry) actual)); return; } assertEquals(expected, actual); }
protected <F extends Feature> void assertFeatureIterator( int startIndex, int numberExpected, FeatureIterator<F> iter, FeatureAssertion assertion) { try { boolean[] loadedFeatures = new boolean[numberExpected]; for (int j = startIndex; j < numberExpected + startIndex; j++) { F feature = iter.next(); assertNotNull(feature); int i = assertion.toIndex(feature); assertTrue(loadedFeatures.length > i - startIndex); assertTrue(i > startIndex - 1); assertFalse(loadedFeatures[i - startIndex]); loadedFeatures[i - startIndex] = true; assertion.check(i, feature); } assertFalse(iter.hasNext()); for (int i = 0; i < numberExpected; i++) { assertTrue("feature " + i + " is missing", loadedFeatures[i]); } } finally { iter.close(); } }
/** * Checkes the two feature types are equal, taking into consideration the eventual modification * the datastore had to perform in order to actually manage the type (change in names case, for * example) */ protected void assertAttributesEqual(AttributeDescriptor expected, AttributeDescriptor actual) { assertEquals(aname(expected.getName()), actual.getName()); assertEquals(expected.getMinOccurs(), actual.getMinOccurs()); assertEquals(expected.getMaxOccurs(), actual.getMaxOccurs()); assertEquals(expected.isNillable(), actual.isNillable()); assertEquals(expected.getDefaultValue(), actual.getDefaultValue()); AttributeType texpected = expected.getType(); AttributeType tactual = actual.getType(); if (Number.class.isAssignableFrom(texpected.getBinding())) { assertTrue(Number.class.isAssignableFrom(tactual.getBinding())); } else if (Geometry.class.isAssignableFrom(texpected.getBinding())) { assertTrue(Geometry.class.isAssignableFrom(tactual.getBinding())); } else { assertTrue(texpected.getBinding().isAssignableFrom(tactual.getBinding())); } }
/** * Checkes the two feature types are equal, taking into consideration the eventual modification * the datastore had to perform in order to actually manage the type (change in names case, for * example) */ protected void assertFeatureTypesEqual(SimpleFeatureType expected, SimpleFeatureType actual) { for (int i = 0; i < expected.getAttributeCount(); i++) { AttributeDescriptor expectedAttribute = expected.getDescriptor(i); AttributeDescriptor actualAttribute = actual.getDescriptor(i); assertAttributesEqual(expectedAttribute, actualAttribute); } // make sure the geometry is nillable and has minOccurrs to 0 if (expected.getGeometryDescriptor() != null) { AttributeDescriptor dg = actual.getGeometryDescriptor(); assertTrue(dg.isNillable()); assertEquals(0, dg.getMinOccurs()); } }