You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/11/07 09:38:18 UTC
[2/2] camel git commit: CAMEL-10443: fixing findById with ObjectId
CAMEL-10443: fixing findById with ObjectId
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f04f785a
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f04f785a
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f04f785a
Branch: refs/heads/camel-2.18.x
Commit: f04f785ab7e8bed46327dd2a9a4d595833b5364c
Parents: c69e59a
Author: Nick Busy <nb...@enfoll.com>
Authored: Sun Nov 6 00:04:05 2016 +1100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Nov 7 10:38:08 2016 +0100
----------------------------------------------------------------------
.../component/mongodb/MongoDbProducer.java | 2 +-
.../mongodb/MongoDbFindOperationTest.java | 23 ++++++++++++++++++++
2 files changed, 24 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/f04f785a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java
index 8b8437c..9a72e7e 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbProducer.java
@@ -478,7 +478,7 @@ public class MongoDbProducer extends DefaultProducer {
return exchange1 -> {
try {
MongoCollection<BasicDBObject> dbCol = calculateCollection(exchange1);
- String id = exchange1.getIn().getMandatoryBody(String.class);
+ Object id = exchange1.getIn().getMandatoryBody();
BasicDBObject o = new BasicDBObject("_id", id);
DBObject ret;
http://git-wip-us.apache.org/repos/asf/camel/blob/f04f785a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbFindOperationTest.java
----------------------------------------------------------------------
diff --git a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbFindOperationTest.java b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbFindOperationTest.java
index fca6ef4..148a020 100644
--- a/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbFindOperationTest.java
+++ b/components/camel-mongodb/src/test/java/org/apache/camel/component/mongodb/MongoDbFindOperationTest.java
@@ -20,12 +20,14 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DBObject;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
+import org.bson.types.ObjectId;
import org.junit.Test;
public class MongoDbFindOperationTest extends AbstractMongoDbTest {
@@ -215,6 +217,27 @@ public class MongoDbFindOperationTest extends AbstractMongoDbTest {
}
+ @Test
+ public void testFindOneByIdWithObjectId() throws Exception {
+ // Test that the collection has 0 documents in it
+ assertEquals(0, testCollection.count());
+ BasicDBObject insertObject = new BasicDBObject("scientist", "Einstein");
+ testCollection.insertOne(insertObject);
+ assertTrue("The ID of the inserted document should be ObjectId", insertObject.get("_id") instanceof ObjectId);
+ ObjectId id = (ObjectId) insertObject.get("_id");
+
+ DBObject result = template.requestBody("direct:findById", id, DBObject.class);
+ assertTrue("Result is not of type DBObject", result instanceof DBObject);
+
+ assertTrue("The ID of the retrieved DBObject should be ObjectId", result.get("_id") instanceof ObjectId);
+ assertEquals("The ID of the retrieved DBObject should equal to the inserted", id, result.get("_id"));
+ assertEquals("The scientist name of the retrieved DBObject should equal Einstein", "Einstein", result.get("scientist"));
+
+ assertNotNull("DBObject in returned list should contain all fields", result.get("_id"));
+ assertNotNull("DBObject in returned list should contain all fields", result.get("scientist"));
+
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {