You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mb...@apache.org on 2015/02/21 23:10:48 UTC

svn commit: r1661445 - /db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java

Author: mbo
Date: Sat Feb 21 22:10:47 2015
New Revision: 1661445

URL: http://svn.apache.org/r1661445
Log:
JDO-650: added IfElse testcase using distinct conditions

Modified:
    db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java

Modified: db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java?rev=1661445&r1=1661444&r2=1661445&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java (original)
+++ db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/IfElseInFilter.java Sat Feb 21 22:10:47 2015
@@ -47,7 +47,7 @@ public class IfElseInFilter extends Quer
      * single string queries and as API queries.
      */
     private static final QueryElementHolder[] VALID_QUERIES = {
-        // 
+        // simple If/Else using literals
         new QueryElementHolder(
         /*UNIQUE*/      null,
         /*RESULT*/      null,
@@ -62,6 +62,7 @@ public class IfElseInFilter extends Quer
         /*ORDER BY*/    "this.personid",
         /*FROM*/        null,
         /*TO*/          null),
+        // simple If/Else using relationships
         new QueryElementHolder(
         /*UNIQUE*/      null,
         /*RESULT*/      null,
@@ -76,13 +77,29 @@ public class IfElseInFilter extends Quer
         /*ORDER BY*/    "this.personid",
         /*FROM*/        null,
         /*TO*/          null),
+        // multiple If/Else with distinct conditions
         new QueryElementHolder(
         /*UNIQUE*/      null,
         /*RESULT*/      null,
         /*INTO*/        null, 
         /*FROM*/        FullTimeEmployee.class,
         /*EXCLUDE*/     null,
-        /*WHERE*/       "(IF (this.salary < 10001.0) 1 ELSE IF (this.salary < 20001.0) 2 ELSE IF (this.salary < 30001.0) 3 ELSE 4) == 2",
+        /*WHERE*/       "(IF (0.0 <= this.salary && this.salary < 10000.1) 1 ELSE IF (10000.1 <= this.salary && this.salary < 20000.1) 2 ELSE IF (20000.1 <= this.salary && this.salary < 30000.1) 3 ELSE 4) == 2",
+        /*VARIABLES*/   null,
+        /*PARAMETERS*/  null,
+        /*IMPORTS*/     null,
+        /*GROUP BY*/    null,
+        /*ORDER BY*/    "this.personid",
+        /*FROM*/        null,
+        /*TO*/          null),
+        // multiple If/Else with overlapping conditions
+        new QueryElementHolder(
+        /*UNIQUE*/      null,
+        /*RESULT*/      null,
+        /*INTO*/        null, 
+        /*FROM*/        FullTimeEmployee.class,
+        /*EXCLUDE*/     null,
+        /*WHERE*/       "(IF (this.salary < 10000.1) 1 ELSE IF (this.salary < 20000.1) 2 ELSE IF (this.salary < 30000.1) 3 ELSE 4) == 2",
         /*VARIABLES*/   null,
         /*PARAMETERS*/  null,
         /*IMPORTS*/     null,
@@ -150,6 +167,7 @@ public class IfElseInFilter extends Quer
     private Object[] expectedResult = {
         getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp5"}),
         getTransientCompanyModelInstancesAsList(new String[]{"emp1", "emp2", "emp3"}),
+        getTransientCompanyModelInstancesAsList(new String[]{"emp1"}),
         getTransientCompanyModelInstancesAsList(new String[]{"emp1"})
     };