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 2018/11/04 18:37:24 UTC
svn commit: r1845744 [9/9] - in /db/jdo/trunk: copyjdorijars/ tck/
tck/src/main/java/org/apache/jdo/tck/pc/company/
tck/src/main/java/org/apache/jdo/tck/pc/mylib/
tck/src/main/java/org/apache/jdo/tck/query/
tck/src/main/java/org/apache/jdo/tck/query/de...
Modified: db/jdo/trunk/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultMultipleNavigation.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultMultipleNavigation.java?rev=1845744&r1=1845743&r2=1845744&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultMultipleNavigation.java (original)
+++ db/jdo/trunk/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultMultipleNavigation.java Sun Nov 4 18:37:24 2018
@@ -22,10 +22,16 @@ import java.util.Arrays;
import org.apache.jdo.tck.pc.company.CompanyModelReader;
import org.apache.jdo.tck.pc.company.Company;
import org.apache.jdo.tck.pc.company.Department;
+import org.apache.jdo.tck.pc.company.QCompany;
+import org.apache.jdo.tck.pc.company.QDepartment;
+import org.apache.jdo.tck.pc.company.QEmployee;
+import org.apache.jdo.tck.pc.company.QProject;
import org.apache.jdo.tck.query.QueryElementHolder;
import org.apache.jdo.tck.query.QueryTest;
import org.apache.jdo.tck.util.BatchTestRunner;
+import javax.jdo.JDOQLTypedQuery;
+
/**
*<B>Title:</B> Variable in Result.
*<BR>
@@ -58,56 +64,7 @@ public class VariableInResultMultipleNav
/** */
private static final String ASSERTION_FAILED =
"Assertion A14.6.9-3 (VariableInResult) failed: ";
-
- /**
- * The array of valid queries which may be executed as
- * single string queries and as API queries.
- */
- private static final QueryElementHolder[] VALID_QUERIES = {
- new QueryElementHolder(
- /*UNIQUE*/ null,
- /*RESULT*/ "this, d, e, p",
- /*INTO*/ null,
- /*FROM*/ Company.class,
- /*EXCLUDE*/ null,
- /*WHERE*/ "name == \"Sun Microsystems, Inc.\" && departments.contains(d) && d.employees.contains(e) && e.projects.contains(p)",
- /*VARIABLES*/ "Department d; Employee e; Project p",
- /*PARAMETERS*/ null,
- /*IMPORTS*/ null,
- /*GROUP BY*/ null,
- /*ORDER BY*/ null,
- /*FROM*/ null,
- /*TO*/ null),
- new QueryElementHolder(
- /*UNIQUE*/ null,
- /*RESULT*/ "this, e, p",
- /*INTO*/ null,
- /*FROM*/ Company.class,
- /*EXCLUDE*/ null,
- /*WHERE*/ "name == \"Sun Microsystems, Inc.\" && departments.contains(d) && d.employees.contains(e) && e.projects.contains(p)",
- /*VARIABLES*/ "Department d; Employee e; Project p",
- /*PARAMETERS*/ null,
- /*IMPORTS*/ null,
- /*GROUP BY*/ null,
- /*ORDER BY*/ null,
- /*FROM*/ null,
- /*TO*/ null),
- new QueryElementHolder(
- /*UNIQUE*/ null,
- /*RESULT*/ "d, e, p",
- /*INTO*/ null,
- /*FROM*/ Company.class,
- /*EXCLUDE*/ null,
- /*WHERE*/ "name == \"Sun Microsystems, Inc.\" && departments.contains(d) && d.employees.contains(e) && e.projects.contains(p)",
- /*VARIABLES*/ "Department d; Employee e; Project p",
- /*PARAMETERS*/ null,
- /*IMPORTS*/ null,
- /*GROUP BY*/ null,
- /*ORDER BY*/ null,
- /*FROM*/ null,
- /*TO*/ null)
- };
-
+
/**
* The expected results of valid queries.
*/
@@ -123,33 +80,6 @@ public class VariableInResultMultipleNav
private Object dept1 = getTransientCompanyModelInstance("dept1");
private Object dept2 = getTransientCompanyModelInstance("dept2");
- private Object[] expectedResult = {
- Arrays.asList(new Object[] {
- new Object[] {company1, dept1, emp1, proj1},
- new Object[] {company1, dept1, emp2, proj1},
- new Object[] {company1, dept1, emp3, proj1},
- new Object[] {company1, dept1, emp2, proj2},
- new Object[] {company1, dept1, emp3, proj2},
- new Object[] {company1, dept2, emp4, proj3},
- new Object[] {company1, dept2, emp5, proj3}}),
- Arrays.asList(new Object[] {
- new Object[] {company1, emp1, proj1},
- new Object[] {company1, emp2, proj1},
- new Object[] {company1, emp3, proj1},
- new Object[] {company1, emp2, proj2},
- new Object[] {company1, emp3, proj2},
- new Object[] {company1, emp4, proj3},
- new Object[] {company1, emp5, proj3}}),
- Arrays.asList(new Object[] {
- new Object[] {dept1, emp1, proj1},
- new Object[] {dept1, emp2, proj1},
- new Object[] {dept1, emp3, proj1},
- new Object[] {dept1, emp2, proj2},
- new Object[] {dept1, emp3, proj2},
- new Object[] {dept2, emp4, proj3},
- new Object[] {dept2, emp5, proj3}})
- };
-
/**
* The <code>main</code> is called when the class
* is directly executed from the command line.
@@ -161,29 +91,131 @@ public class VariableInResultMultipleNav
/** */
public void testNavigationWithCompanyAndDepartmentAndEmployeeAndProject() {
- int index = 0;
- executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
- executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
+ Object expected = Arrays.asList(
+ new Object[] {company1, dept1, emp1, proj1},
+ new Object[] {company1, dept1, emp2, proj1},
+ new Object[] {company1, dept1, emp3, proj1},
+ new Object[] {company1, dept1, emp2, proj2},
+ new Object[] {company1, dept1, emp3, proj2},
+ new Object[] {company1, dept2, emp4, proj3},
+ new Object[] {company1, dept2, emp5, proj3});
+
+ JDOQLTypedQuery<Company> query = getPM().newJDOQLTypedQuery(Company.class);
+ QCompany cand = QCompany.candidate();
+ QDepartment d = QDepartment.variable("d");
+ QEmployee e = QEmployee.variable("e");
+ QProject p = QProject.variable("p");
+ query.filter(cand.name.eq("Sun Microsystems, Inc.").and(
+ cand.departments.contains(d)).and(d.employees.contains(e)).and(e.projects.contains(p)));
+ query.result(false, cand, d, e, p);
+
+ QueryElementHolder holder = new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "this, d, e, p",
+ /*INTO*/ null,
+ /*FROM*/ Company.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ "name == \"Sun Microsystems, Inc.\" && " +
+ "departments.contains(d) && d.employees.contains(e) && e.projects.contains(p)",
+ /*VARIABLES*/ "Department d; Employee e; Project p",
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
+ /*TO*/ null,
+ /*JDOQLTyped*/ query,
+ /*paramValues*/ null);
+
+ executeAPIQuery(ASSERTION_FAILED, holder, expected);
+ executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
+ executeJDOQLTypedQuery(ASSERTION_FAILED, holder, Object[].class, expected);
}
/** */
public void testNavigationWithCompanyAndEmployeeAndProject() {
- int index = 1;
- executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
- executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
+ Object expected = Arrays.asList(
+ new Object[] {company1, emp1, proj1},
+ new Object[] {company1, emp2, proj1},
+ new Object[] {company1, emp3, proj1},
+ new Object[] {company1, emp2, proj2},
+ new Object[] {company1, emp3, proj2},
+ new Object[] {company1, emp4, proj3},
+ new Object[] {company1, emp5, proj3});
+
+ JDOQLTypedQuery<Company> query = getPM().newJDOQLTypedQuery(Company.class);
+ QCompany cand = QCompany.candidate();
+ QDepartment d = QDepartment.variable("d");
+ QEmployee e = QEmployee.variable("e");
+ QProject p = QProject.variable("p");
+ query.filter(cand.name.eq("Sun Microsystems, Inc.").and(
+ cand.departments.contains(d)).and(d.employees.contains(e)).and(e.projects.contains(p)));
+ query.result(false, cand, e, p);
+
+ QueryElementHolder holder = new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "this, e, p",
+ /*INTO*/ null,
+ /*FROM*/ Company.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ "name == \"Sun Microsystems, Inc.\" && " +
+ "departments.contains(d) && d.employees.contains(e) && e.projects.contains(p)",
+ /*VARIABLES*/ "Department d; Employee e; Project p",
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
+ /*TO*/ null,
+ /*JDOQLTyped*/ query,
+ /*paramValues*/ null);
+
+ executeAPIQuery(ASSERTION_FAILED, holder, expected);
+ executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
+ executeJDOQLTypedQuery(ASSERTION_FAILED, holder, Object[].class, expected);
}
/** */
public void testNavigationWithDepartmentAndEmployeeAndProject() {
- int index = 2;
- executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
- executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
+ Object expected = Arrays.asList(
+ new Object[] {dept1, emp1, proj1},
+ new Object[] {dept1, emp2, proj1},
+ new Object[] {dept1, emp3, proj1},
+ new Object[] {dept1, emp2, proj2},
+ new Object[] {dept1, emp3, proj2},
+ new Object[] {dept2, emp4, proj3},
+ new Object[] {dept2, emp5, proj3});
+
+ JDOQLTypedQuery<Company> query = getPM().newJDOQLTypedQuery(Company.class);
+ QCompany cand = QCompany.candidate();
+ QDepartment d = QDepartment.variable("d");
+ QEmployee e = QEmployee.variable("e");
+ QProject p = QProject.variable("p");
+ query.filter(cand.name.eq("Sun Microsystems, Inc.").and(
+ cand.departments.contains(d)).and(d.employees.contains(e)).and(e.projects.contains(p)));
+ query.result(false, d, e, p);
+
+ QueryElementHolder holder = new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "d, e, p",
+ /*INTO*/ null,
+ /*FROM*/ Company.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ "name == \"Sun Microsystems, Inc.\" && " +
+ "departments.contains(d) && d.employees.contains(e) && e.projects.contains(p)",
+ /*VARIABLES*/ "Department d; Employee e; Project p",
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
+ /*TO*/ null,
+ /*JDOQLTyped*/ query,
+ /*paramValues*/ null);
+
+ executeAPIQuery(ASSERTION_FAILED, holder, expected);
+ executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
+ executeJDOQLTypedQuery(ASSERTION_FAILED, holder, Object[].class, expected);
}
/**
Modified: db/jdo/trunk/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java?rev=1845744&r1=1845743&r2=1845744&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java (original)
+++ db/jdo/trunk/tck/src/main/java/org/apache/jdo/tck/query/result/VariableInResultNavigation.java Sun Nov 4 18:37:24 2018
@@ -22,10 +22,15 @@ import java.util.Arrays;
import org.apache.jdo.tck.pc.company.CompanyModelReader;
import org.apache.jdo.tck.pc.company.Company;
import org.apache.jdo.tck.pc.company.Department;
+import org.apache.jdo.tck.pc.company.QDepartment;
+import org.apache.jdo.tck.pc.company.QEmployee;
+import org.apache.jdo.tck.pc.company.QProject;
import org.apache.jdo.tck.query.QueryElementHolder;
import org.apache.jdo.tck.query.QueryTest;
import org.apache.jdo.tck.util.BatchTestRunner;
+import javax.jdo.JDOQLTypedQuery;
+
/**
*<B>Title:</B> Variable in Result.
*<BR>
@@ -58,84 +63,7 @@ public class VariableInResultNavigation
/** */
private static final String ASSERTION_FAILED =
"Assertion A14.6.9-3 (VariableInResult) failed: ";
-
- /**
- * The array of valid queries which may be executed as
- * single string queries and as API queries.
- */
- private static final QueryElementHolder[] VALID_QUERIES = {
- new QueryElementHolder(
- /*UNIQUE*/ null,
- /*RESULT*/ "e, p",
- /*INTO*/ null,
- /*FROM*/ Department.class,
- /*EXCLUDE*/ null,
- /*WHERE*/ "employees.contains(e) && e.projects.contains(p) && p.name == 'orange'",
- /*VARIABLES*/ "Employee e; Project p",
- /*PARAMETERS*/ null,
- /*IMPORTS*/ null,
- /*GROUP BY*/ null,
- /*ORDER BY*/ null,
- /*FROM*/ null,
- /*TO*/ null),
- new QueryElementHolder(
- /*UNIQUE*/ null,
- /*RESULT*/ "e, p",
- /*INTO*/ null,
- /*FROM*/ Department.class,
- /*EXCLUDE*/ null,
- /*WHERE*/ "employees.contains(e) && e.projects.contains(p)",
- /*VARIABLES*/ "Employee e; Project p",
- /*PARAMETERS*/ null,
- /*IMPORTS*/ null,
- /*GROUP BY*/ null,
- /*ORDER BY*/ null,
- /*FROM*/ null,
- /*TO*/ null),
- new QueryElementHolder(
- /*UNIQUE*/ null,
- /*RESULT*/ "this, e, p",
- /*INTO*/ null,
- /*FROM*/ Department.class,
- /*EXCLUDE*/ null,
- /*WHERE*/ "employees.contains(e) && e.projects.contains(p)",
- /*VARIABLES*/ "Employee e; Project p",
- /*PARAMETERS*/ null,
- /*IMPORTS*/ null,
- /*GROUP BY*/ null,
- /*ORDER BY*/ null,
- /*FROM*/ null,
- /*TO*/ null),
- new QueryElementHolder(
- /*UNIQUE*/ null,
- /*RESULT*/ "e, p",
- /*INTO*/ null,
- /*FROM*/ Department.class,
- /*EXCLUDE*/ null,
- /*WHERE*/ "deptid == 1 && employees.contains(e) && e.projects.contains(p)",
- /*VARIABLES*/ "Employee e; Project p",
- /*PARAMETERS*/ null,
- /*IMPORTS*/ null,
- /*GROUP BY*/ null,
- /*ORDER BY*/ null,
- /*FROM*/ null,
- /*TO*/ null),
- new QueryElementHolder(
- /*UNIQUE*/ null,
- /*RESULT*/ "e, p",
- /*INTO*/ null,
- /*FROM*/ Department.class,
- /*EXCLUDE*/ null,
- /*WHERE*/ "company.name == \"Sun Microsystems, Inc.\" && employees.contains(e) && e.projects.contains(p)",
- /*VARIABLES*/ "Employee e; Project p",
- /*PARAMETERS*/ null,
- /*IMPORTS*/ null,
- /*GROUP BY*/ null,
- /*ORDER BY*/ null,
- /*FROM*/ null,
- /*TO*/ null)
- };
-
+
/**
* The expected results of valid queries.
*/
@@ -150,43 +78,6 @@ public class VariableInResultNavigation
private Object dept1 = getTransientCompanyModelInstance("dept1");
private Object dept2 = getTransientCompanyModelInstance("dept2");
- private Object[] expectedResult = {
- Arrays.asList(new Object[] {
- new Object[] {emp1, proj1},
- new Object[] {emp2, proj1},
- new Object[] {emp3, proj1}}),
- Arrays.asList(new Object[] {
- new Object[] {emp1, proj1},
- new Object[] {emp2, proj1},
- new Object[] {emp3, proj1},
- new Object[] {emp2, proj2},
- new Object[] {emp3, proj2},
- new Object[] {emp4, proj3},
- new Object[] {emp5, proj3}}),
- Arrays.asList(new Object[] {
- new Object[] {dept1, emp1, proj1},
- new Object[] {dept1, emp2, proj1},
- new Object[] {dept1, emp3, proj1},
- new Object[] {dept1, emp2, proj2},
- new Object[] {dept1, emp3, proj2},
- new Object[] {dept2, emp4, proj3},
- new Object[] {dept2, emp5, proj3}}),
- Arrays.asList(new Object[] {
- new Object[] {emp1, proj1},
- new Object[] {emp2, proj1},
- new Object[] {emp3, proj1},
- new Object[] {emp2, proj2},
- new Object[] {emp3, proj2}}),
- Arrays.asList(new Object[] {
- new Object[] {emp1, proj1},
- new Object[] {emp2, proj1},
- new Object[] {emp3, proj1},
- new Object[] {emp2, proj2},
- new Object[] {emp3, proj2},
- new Object[] {emp4, proj3},
- new Object[] {emp5, proj3}})
- };
-
/**
* The <code>main</code> is called when the class
* is directly executed from the command line.
@@ -198,47 +89,196 @@ public class VariableInResultNavigation
/** */
public void testNavigationWithConstraint() {
- int index = 0;
- executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
- executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
+ Object expected = Arrays.asList(
+ new Object[] {emp1, proj1},
+ new Object[] {emp2, proj1},
+ new Object[] {emp3, proj1});
+
+ JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
+ QDepartment cand = QDepartment.candidate();
+ QEmployee e = QEmployee.variable("e");
+ QProject p = QProject.variable("p");
+ query.filter(cand.employees.contains(e).and(e.projects.contains(p)).and(p.name.eq("orange")));
+ query.result(false, e, p);
+
+ QueryElementHolder holder = new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "e, p",
+ /*INTO*/ null,
+ /*FROM*/ Department.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ "employees.contains(e) && e.projects.contains(p) && p.name == 'orange'",
+ /*VARIABLES*/ "Employee e; Project p",
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
+ /*TO*/ null,
+ /*JDOQLTyped*/ query,
+ /*paramValues*/ null);
+
+ executeAPIQuery(ASSERTION_FAILED, holder, expected);
+ executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
+ executeJDOQLTypedQuery(ASSERTION_FAILED, holder, Object[].class, expected);
}
/** */
public void testNavigationWithoutConstraint() {
- int index = 1;
- executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
- executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
+ Object expected = Arrays.asList(
+ new Object[] {emp1, proj1},
+ new Object[] {emp2, proj1},
+ new Object[] {emp3, proj1},
+ new Object[] {emp2, proj2},
+ new Object[] {emp3, proj2},
+ new Object[] {emp4, proj3},
+ new Object[] {emp5, proj3});
+
+ JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
+ QDepartment cand = QDepartment.candidate();
+ QEmployee e = QEmployee.variable("e");
+ QProject p = QProject.variable("p");
+ query.filter(cand.employees.contains(e).and(e.projects.contains(p)));
+ query.result(false, e, p);
+
+ QueryElementHolder holder = new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "e, p",
+ /*INTO*/ null,
+ /*FROM*/ Department.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ "employees.contains(e) && e.projects.contains(p)",
+ /*VARIABLES*/ "Employee e; Project p",
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
+ /*TO*/ null,
+ /*JDOQLTyped*/ query,
+ /*paramValues*/ null);
+
+ executeAPIQuery(ASSERTION_FAILED, holder, expected);
+ executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
+ executeJDOQLTypedQuery(ASSERTION_FAILED, holder, Object[].class, expected);
}
/** */
public void testNavigationWithThis() {
- int index = 2;
- executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
- executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
+ Object expected = Arrays.asList(
+ new Object[] {dept1, emp1, proj1},
+ new Object[] {dept1, emp2, proj1},
+ new Object[] {dept1, emp3, proj1},
+ new Object[] {dept1, emp2, proj2},
+ new Object[] {dept1, emp3, proj2},
+ new Object[] {dept2, emp4, proj3},
+ new Object[] {dept2, emp5, proj3});
+
+ JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
+ QDepartment cand = QDepartment.candidate();
+ QEmployee e = QEmployee.variable("e");
+ QProject p = QProject.variable("p");
+ query.filter(cand.employees.contains(e).and(e.projects.contains(p)));
+ query.result(false, cand, e, p);
+
+ QueryElementHolder holder = new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "this, e, p",
+ /*INTO*/ null,
+ /*FROM*/ Department.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ "employees.contains(e) && e.projects.contains(p)",
+ /*VARIABLES*/ "Employee e; Project p",
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
+ /*TO*/ null,
+ /*JDOQLTyped*/ query,
+ /*paramValues*/ null);
+
+ executeAPIQuery(ASSERTION_FAILED, holder, expected);
+ executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
+ executeJDOQLTypedQuery(ASSERTION_FAILED, holder, Object[].class, expected);
}
/** */
public void testNavigationWithThisConstraint() {
- int index = 3;
- executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
- executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
+ Object expected = Arrays.asList(
+ new Object[] {emp1, proj1},
+ new Object[] {emp2, proj1},
+ new Object[] {emp3, proj1},
+ new Object[] {emp2, proj2},
+ new Object[] {emp3, proj2});
+
+ JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
+ QDepartment cand = QDepartment.candidate();
+ QEmployee e = QEmployee.variable("e");
+ QProject p = QProject.variable("p");
+ query.filter(cand.deptid.eq(1l).and(cand.employees.contains(e)).and(e.projects.contains(p)));
+ query.result(false, e, p);
+
+ QueryElementHolder holder = new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "e, p",
+ /*INTO*/ null,
+ /*FROM*/ Department.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ "deptid == 1 && employees.contains(e) && e.projects.contains(p)",
+ /*VARIABLES*/ "Employee e; Project p",
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
+ /*TO*/ null,
+ /*JDOQLTyped*/ query,
+ /*paramValues*/ null);
+
+ executeAPIQuery(ASSERTION_FAILED, holder, expected);
+ executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
+ executeJDOQLTypedQuery(ASSERTION_FAILED, holder, Object[].class, expected);
}
/** */
public void testNavigationWithCompanyConstraint() {
- int index = 4;
- executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
- executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[index],
- expectedResult[index]);
+ Object expected = Arrays.asList(
+ new Object[] {emp1, proj1},
+ new Object[] {emp2, proj1},
+ new Object[] {emp3, proj1},
+ new Object[] {emp2, proj2},
+ new Object[] {emp3, proj2},
+ new Object[] {emp4, proj3},
+ new Object[] {emp5, proj3});
+
+ JDOQLTypedQuery<Department> query = getPM().newJDOQLTypedQuery(Department.class);
+ QDepartment cand = QDepartment.candidate();
+ QEmployee e = QEmployee.variable("e");
+ QProject p = QProject.variable("p");
+ query.filter(cand.company.name.eq("Sun Microsystems, Inc.").and(cand.employees.contains(e)).and(e.projects.contains(p)));
+ query.result(false, e, p);
+
+ QueryElementHolder holder = new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ "e, p",
+ /*INTO*/ null,
+ /*FROM*/ Department.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ "company.name == \"Sun Microsystems, Inc.\" && employees.contains(e) && e.projects.contains(p)",
+ /*VARIABLES*/ "Employee e; Project p",
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ null,
+ /*FROM*/ null,
+ /*TO*/ null,
+ /*JDOQLTyped*/ query,
+ /*paramValues*/ null);
+
+ executeAPIQuery(ASSERTION_FAILED, holder, expected);
+ executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
+ executeJDOQLTypedQuery(ASSERTION_FAILED, holder, Object[].class, expected);
}
/**
* @see QueryTest#localSetUp()
Modified: db/jdo/trunk/tck/src/main/resources/conf/jdo-signatures.txt
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/main/resources/conf/jdo-signatures.txt?rev=1845744&r1=1845743&r2=1845744&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/main/resources/conf/jdo-signatures.txt (original)
+++ db/jdo/trunk/tck/src/main/resources/conf/jdo-signatures.txt Sun Nov 4 18:37:24 2018
@@ -1727,6 +1727,12 @@ public interface javax.jdo.JDOQLTypedQue
javax.jdo.JDOQLTypedQuery excludeSubclasses();
javax.jdo.JDOQLTypedQuery includeSubclasses();
javax.jdo.JDOQLTypedQuery filter(javax.jdo.query.BooleanExpression expr);
+ javax.jdo.query.IfThenElseExpression ifThen(java.lang.Class, javax.jdo.query.BooleanExpression, javax.jdo.query.Expression);
+ javax.jdo.query.IfThenElseExpression ifThen(javax.jdo.query.BooleanExpression, java.lang.Object);
+ javax.jdo.query.IfThenElseExpression ifThenElse(javax.jdo.query.BooleanExpression, java.lang.Object, java.lang.Object);
+ javax.jdo.query.IfThenElseExpression ifThenElse(javax.jdo.query.BooleanExpression, javax.jdo.query.Expression, java.lang.Object);
+ javax.jdo.query.IfThenElseExpression ifThenElse(javax.jdo.query.BooleanExpression, java.lang.Object, javax.jdo.query.Expression);
+ javax.jdo.query.IfThenElseExpression ifThenElse(java.lang.Class, javax.jdo.query.BooleanExpression, javax.jdo.query.Expression, javax.jdo.query.Expression);
varargs javax.jdo.JDOQLTypedQuery groupBy(javax.jdo.query.Expression[] exprs);
javax.jdo.JDOQLTypedQuery having(javax.jdo.query.Expression expr);
varargs javax.jdo.JDOQLTypedQuery orderBy(javax.jdo.query.OrderExpression[] orderExprs);
@@ -1817,8 +1823,8 @@ public interface javax.jdo.query.Compara
javax.jdo.query.BooleanExpression gt(Object t);
javax.jdo.query.BooleanExpression gteq(javax.jdo.query.ComparableExpression expr);
javax.jdo.query.BooleanExpression gteq(Object t);
- javax.jdo.query.NumericExpression min();
- javax.jdo.query.NumericExpression max();
+ javax.jdo.query.ComparableExpression min();
+ javax.jdo.query.ComparableExpression max();
javax.jdo.query.OrderExpression asc();
javax.jdo.query.OrderExpression desc();
}
@@ -1859,6 +1865,8 @@ public interface javax.jdo.query.ListExp
}
public interface javax.jdo.query.MapExpression extends javax.jdo.query.Expression
{
+ javax.jdo.query.Expression get(javax.jdo.query.Expression);
+ javax.jdo.query.Expression get(java.lang.Object);
javax.jdo.query.BooleanExpression containsKey(javax.jdo.query.Expression expr);
javax.jdo.query.BooleanExpression containsKey(Object key);
javax.jdo.query.BooleanExpression containsValue(javax.jdo.query.Expression expr);
@@ -1883,7 +1891,9 @@ public interface javax.jdo.query.Numeric
javax.jdo.query.NumericExpression neg();
javax.jdo.query.NumericExpression com();
javax.jdo.query.NumericExpression avg();
+ javax.jdo.query.NumericExpression avgDistinct();
javax.jdo.query.NumericExpression sum();
+ javax.jdo.query.NumericExpression sumDistinct();
javax.jdo.query.NumericExpression abs();
javax.jdo.query.NumericExpression sqrt();
javax.jdo.query.NumericExpression acos();
@@ -1908,6 +1918,9 @@ public interface javax.jdo.query.OrderEx
{
enum javax.jdo.query.OrderExpression$OrderDirection getDirection();
javax.jdo.query.Expression getExpression();
+ enum javax.jdo.query.OrderExpression$OrderNullsPosition getNullsPosition();
+ javax.jdo.query.OrderExpression nullsFirst();
+ javax.jdo.query.OrderExpression nullsLast();
}
public interface javax.jdo.query.PersistableExpression extends javax.jdo.query.Expression
@@ -1937,6 +1950,8 @@ public interface javax.jdo.query.StringE
javax.jdo.query.BooleanExpression matches(String str);
javax.jdo.query.BooleanExpression startsWith(javax.jdo.query.StringExpression expr);
javax.jdo.query.BooleanExpression startsWith(String str);
+ javax.jdo.query.BooleanExpression startsWith(javax.jdo.query.StringExpression, int);
+ javax.jdo.query.BooleanExpression startsWith(java.lang.String, int);
javax.jdo.query.StringExpression substring(javax.jdo.query.NumericExpression pos);
javax.jdo.query.StringExpression substring(int pos);
javax.jdo.query.StringExpression substring(javax.jdo.query.NumericExpression startPos, javax.jdo.query.NumericExpression endPos);