You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2019/05/14 12:16:16 UTC

[cayenne] branch master updated: Fix translation of NULL values - fix tests on Derby

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new 860eec4  Fix translation of NULL values  - fix tests on Derby
860eec4 is described below

commit 860eec49e9a6fe08661d9e51cb8f6e0dbab61481
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Tue May 14 15:16:04 2019 +0300

    Fix translation of NULL values
     - fix tests on Derby
---
 .../java/org/apache/cayenne/exp/ExpressionIT.java  | 30 +++++++++++++++++++---
 .../apache/cayenne/unit/DerbyUnitDbAdapter.java    |  5 ++++
 .../org/apache/cayenne/unit/UnitDbAdapter.java     |  4 +++
 3 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionIT.java b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
index 1149b20..08b7aca 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
@@ -19,6 +19,7 @@
 
 package org.apache.cayenne.exp;
 
+import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.configuration.server.ServerRuntime;
@@ -27,6 +28,7 @@ import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.CayenneProjects;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -51,6 +53,9 @@ public class ExpressionIT extends ServerCase {
 	@Inject
 	private ServerRuntime runtime;
 
+	@Inject
+    private UnitDbAdapter adapter;
+
     @Test
 	public void testMatch() {
 
@@ -132,8 +137,18 @@ public class ExpressionIT extends ServerCase {
 		a1.setArtistName("Picasso");
 		context.commitChanges();
 
-		List<Artist> artists = ObjectSelect.query(Artist.class, Artist.ARTIST_NAME.lt((String)null)).select(context);
-		assertTrue("Less than 'NULL' never matches anything", artists.isEmpty());
+        List<Artist> artists;
+		try {
+            artists = ObjectSelect.query(Artist.class, Artist.ARTIST_NAME.lt((String) null)).select(context);
+        } catch (CayenneRuntimeException ex) {
+		    if(adapter.supportsNullComparision()) {
+		        throw ex;
+            } else {
+		        return;
+            }
+        }
+
+        assertTrue("Less than 'NULL' never matches anything", artists.isEmpty());
 	}
 
 	@Test
@@ -142,7 +157,16 @@ public class ExpressionIT extends ServerCase {
 		a1.setArtistName("Picasso");
 		context.commitChanges();
 
-		List<Artist> artists = ObjectSelect.query(Artist.class, Artist.ARTIST_NAME.in("Picasso", (String)null)).select(context);
+        List<Artist> artists;
+        try {
+            artists = ObjectSelect.query(Artist.class, Artist.ARTIST_NAME.in("Picasso", (String) null)).select(context);
+        } catch (CayenneRuntimeException ex) {
+            if(adapter.supportsNullComparision()) {
+                throw ex;
+            } else {
+                return;
+            }
+        }
 		assertEquals(1, artists.size());
 	}
 
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/DerbyUnitDbAdapter.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/DerbyUnitDbAdapter.java
index 7c29e13..04db855 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/DerbyUnitDbAdapter.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/DerbyUnitDbAdapter.java
@@ -72,4 +72,9 @@ public class DerbyUnitDbAdapter extends UnitDbAdapter {
     public boolean supportsLongIn() {
         return false;
     }
+
+    @Override
+    public boolean supportsNullComparision() {
+        return false;
+    }
 }
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java
index c57edd8..ae04f89 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/UnitDbAdapter.java
@@ -411,4 +411,8 @@ public class UnitDbAdapter {
     public boolean supportsLongIn() {
         return true;
     }
+
+    public boolean supportsNullComparision() {
+        return true;
+    }
 }