From 726b0b1bccbbd51b56ed73a48c40b791718699d7 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 24 Jul 2012 20:13:50 +0200 Subject: [PATCH] DATAMONGO-493 - Added test case to show the described scenario is working. --- .../core/convert/QueryMapperUnitTests.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/QueryMapperUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/QueryMapperUnitTests.java index 4c635e305..e95ee32f9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/QueryMapperUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/QueryMapperUnitTests.java @@ -21,7 +21,9 @@ import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.query.Query.*; import java.math.BigInteger; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.bson.types.ObjectId; import org.junit.Before; @@ -212,6 +214,23 @@ public class QueryMapperUnitTests { assertThat(((DBObject) result.get("nested")).get("id"), is(instanceOf(String.class))); } + /** + * @see DATAMONGO-493 + */ + @Test + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void foo() { + + Query query = Query.query(Criteria.where("id").is("id_value").and("publishers").ne("a_string_value")); + + DBObject dbObject = mapper.getMappedObject(query.getQueryObject(), context.getPersistentEntity(UserEntity.class)); + assertThat(dbObject.get("publishers"), isA((Class) DBObject.class)); + + DBObject publishers = (DBObject) dbObject.get("publishers"); + assertThat(publishers.containsField("$ne"), is(true)); + assertThat(publishers.get("$ne"), is((Object) "a_string_value")); + } + class IdWrapper { Object id; } @@ -237,4 +256,9 @@ public class QueryMapperUnitTests { enum Enum { INSTANCE; } + + class UserEntity { + String id; + List publishers = new ArrayList(); + } }