DATADOC-286 - Added support for GreaterThanEqual and LessThanEqual.
Using those keywords provided by Spring Data Commons will cause $gte and $lte criterias to be created.
This commit is contained in:
@@ -148,8 +148,12 @@ class MongoQueryCreator extends AbstractQueryCreator<Query, Query> {
|
||||
switch (type) {
|
||||
case GREATER_THAN:
|
||||
return criteria.gt(parameters.nextConverted());
|
||||
case GREATER_THAN_EQUAL:
|
||||
return criteria.gte(parameters.nextConverted());
|
||||
case LESS_THAN:
|
||||
return criteria.lt(parameters.nextConverted());
|
||||
case LESS_THAN_EQUAL:
|
||||
return criteria.lte(parameters.nextConverted());
|
||||
case BETWEEN:
|
||||
return criteria.gt(parameters.nextConverted()).lt(parameters.nextConverted());
|
||||
case IS_NOT_NULL:
|
||||
|
||||
@@ -130,6 +130,27 @@ public class MongoQueryCreatorUnitTests {
|
||||
assertBindsDistanceToQuery(point, distance, query);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createsLessThanEqualQueryCorrectly() throws Exception {
|
||||
|
||||
PartTree tree = new PartTree("findByAgeLessThanEqual", Person.class);
|
||||
MongoQueryCreator creator = new MongoQueryCreator(tree, getAccessor(converter, 18));
|
||||
|
||||
Query reference = query(where("age").lte(18));
|
||||
assertThat(creator.createQuery().getQueryObject(), is (reference.getQueryObject()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createsGreaterThanEqualQueryCorrectly() throws Exception {
|
||||
|
||||
PartTree tree = new PartTree("findByAgeGreaterThanEqual", Person.class);
|
||||
MongoQueryCreator creator = new MongoQueryCreator(tree, getAccessor(converter, 18));
|
||||
|
||||
Query reference = query(where("age").gte(18));
|
||||
assertThat(creator.createQuery().getQueryObject(), is (reference.getQueryObject()));
|
||||
}
|
||||
|
||||
|
||||
private void assertBindsDistanceToQuery(Point point, Distance distance, Query reference) throws Exception {
|
||||
|
||||
when(converter.convertToMongoType("Dave")).thenReturn("Dave");
|
||||
|
||||
Reference in New Issue
Block a user