use of org.mongodb.morphia.mapping.Mapper in project morphia by mongodb.
the class GeoWithinOperationValidatorTest method shouldAllowGeoWithinOperatorForGeoEntityWithListOfIntegers.
@Test
public void shouldAllowGeoWithinOperatorForGeoEntityWithListOfIntegers() {
// given
List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>();
MappedClass mappedClass = new MappedClass(GeoEntity.class, new Mapper());
MappedField mappedField = mappedClass.getMappedField("list");
assertThat(GeoWithinOperationValidator.getInstance().apply(mappedField, GEO_WITHIN, new BasicDBObject("$box", 1), validationFailures), is(true));
}
use of org.mongodb.morphia.mapping.Mapper in project morphia by mongodb.
the class GeoWithinOperationValidatorTest method shouldRejectGeoWithinWhenValueIsNotADBObject.
@Test
public void shouldRejectGeoWithinWhenValueIsNotADBObject() {
// given
List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>();
MappedClass mappedClass = new MappedClass(GeoEntity.class, new Mapper());
MappedField mappedField = mappedClass.getMappedField("array");
// when
boolean validationApplied = GeoWithinOperationValidator.getInstance().apply(mappedField, GEO_WITHIN, "NotAGeoQuery", validationFailures);
// then
assertThat(validationApplied, is(true));
assertThat(validationFailures.size(), is(1));
assertThat(validationFailures.get(0).toString(), containsString("For a $geoWithin operation, the value should be a valid geo query"));
}
use of org.mongodb.morphia.mapping.Mapper in project morphia by mongodb.
the class GeoWithinOperationValidatorTest method shouldRejectGeoWithinWhenValueDoesNotContainKeyword.
@Test
public void shouldRejectGeoWithinWhenValueDoesNotContainKeyword() {
// given
List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>();
MappedClass mappedClass = new MappedClass(GeoEntity.class, new Mapper());
MappedField mappedField = mappedClass.getMappedField("array");
// when
boolean validationApplied = GeoWithinOperationValidator.getInstance().apply(mappedField, GEO_WITHIN, new BasicDBObject("notValidKey", 1), validationFailures);
// then
assertThat(validationApplied, is(true));
assertThat(validationFailures.size(), is(1));
assertThat(validationFailures.get(0).toString(), containsString("For a $geoWithin operation, the value should be a valid geo query"));
}
use of org.mongodb.morphia.mapping.Mapper in project morphia by mongodb.
the class GeoWithinOperationValidatorTest method shouldRejectGeoWithinOperatorWhenMappedFieldIsArrayThatDoesNotContainNumbers.
@Test
public void shouldRejectGeoWithinOperatorWhenMappedFieldIsArrayThatDoesNotContainNumbers() {
// given
List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>();
MappedClass mappedClass = new MappedClass(InvalidGeoEntity.class, new Mapper());
MappedField mappedField = mappedClass.getMappedField("arrayOfStrings");
// when
boolean validationApplied = GeoWithinOperationValidator.getInstance().apply(mappedField, GEO_WITHIN, new BasicDBObject("$box", 1), validationFailures);
// then
assertThat(validationApplied, is(true));
assertThat(validationFailures.size(), is(1));
assertThat(validationFailures.get(0).toString(), containsString("is an array or iterable it should have numeric values"));
}
use of org.mongodb.morphia.mapping.Mapper in project morphia by mongodb.
the class GeoWithinOperationValidatorTest method shouldRejectGeoWithinOperatorWhenMappedFieldIsListThatDoesNotContainNumbers.
@Test
public void shouldRejectGeoWithinOperatorWhenMappedFieldIsListThatDoesNotContainNumbers() {
// given
List<ValidationFailure> validationFailures = new ArrayList<ValidationFailure>();
MappedClass mappedClass = new MappedClass(InvalidGeoEntity.class, new Mapper());
MappedField mappedField = mappedClass.getMappedField("listOfStrings");
// when
boolean validationApplied = GeoWithinOperationValidator.getInstance().apply(mappedField, GEO_WITHIN, new BasicDBObject("$box", 1), validationFailures);
// then
assertThat(validationApplied, is(true));
assertThat(validationFailures.size(), is(1));
assertThat(validationFailures.get(0).toString(), containsString("is an array or iterable it should have numeric values"));
}
Aggregations