You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2014/06/02 18:43:37 UTC

git commit: Fixed integration/unittest for previous commit

Repository: incubator-metamodel
Updated Branches:
  refs/heads/master 0344dfc06 -> 1d7270c12


Fixed integration/unittest for previous commit

Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/1d7270c1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/1d7270c1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/1d7270c1

Branch: refs/heads/master
Commit: 1d7270c12f21626cd560ea4486ada7e2175f2104
Parents: 0344dfc
Author: Kasper Sørensen <i....@gmail.com>
Authored: Mon Jun 2 18:42:45 2014 +0200
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Mon Jun 2 18:42:45 2014 +0200

----------------------------------------------------------------------
 .../metamodel/couchdb/CouchDbDataContext.java   |  9 ++++++++-
 .../couchdb/CouchDbDataContextTest.java         | 20 ++++++++++++++++++--
 2 files changed, 26 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/1d7270c1/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
----------------------------------------------------------------------
diff --git a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
index e0ef5f9..89950d4 100644
--- a/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
+++ b/couchdb/src/main/java/org/apache/metamodel/couchdb/CouchDbDataContext.java
@@ -249,11 +249,18 @@ public class CouchDbDataContext extends QueryPostprocessDataContext implements U
     @Override
     protected org.apache.metamodel.data.Row executePrimaryKeyLookupQuery(Table table, List<SelectItem> selectItems,
             Column primaryKeyColumn, Object keyValue) {
+        if (keyValue == null) {
+            return null;
+        }
+
         final String databaseName = table.getName();
         final CouchDbConnector connector = _couchDbInstance.createConnector(databaseName, false);
 
-        final String keyString = (String) keyValue;
+        final String keyString = keyValue.toString();
         final JsonNode node = connector.find(JsonNode.class, keyString);
+        if (node == null) {
+            return null;
+        }
 
         return CouchDbUtils.jsonNodeToMetaModelRow(node, new SimpleDataSetHeader(selectItems));
     }

http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/1d7270c1/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java
----------------------------------------------------------------------
diff --git a/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java b/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java
index 48d9497..d9e361e 100644
--- a/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java
+++ b/couchdb/src/test/java/org/apache/metamodel/couchdb/CouchDbDataContextTest.java
@@ -253,13 +253,29 @@ public class CouchDbDataContextTest extends CouchDbTestCase {
         assertFalse(ds.next());
         ds.close();
 
+        ds = dc.query().from(getDatabaseName()).select("_id").where("name").eq("Jane Doe").execute();
+        assertTrue(ds.next());
+        Object pkValue = ds.getRow().getValue(0);
+        assertFalse(ds.next());
+        ds.close();
+
         // test primary key lookup query
-        ds = dc.query().from(getDatabaseName()).select("name").and("gender").where("_id")
-                .eq("jane_doe_some_unique_test_id").execute();
+        ds = dc.query().from(getDatabaseName()).select("name").and("gender").where("_id").eq(pkValue).execute();
         assertTrue(ds.next());
         assertEquals("Row[values=[Jane Doe, F]]", ds.getRow().toString());
         assertFalse(ds.next());
         ds.close();
+
+        // test primary key null
+        ds = dc.query().from(getDatabaseName()).select("name").and("gender").where("_id").isNull().execute();
+        assertFalse(ds.next());
+        ds.close();
+
+        // test primary key not found
+        ds = dc.query().from(getDatabaseName()).select("name").and("gender").where("_id").eq("this id does not exist")
+                .execute();
+        assertFalse(ds.next());
+        ds.close();
     }
 
     public void testFirstRowAndLastRow() throws Exception {