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 2014/10/19 22:05:43 UTC
svn commit: r1632986 - in /db/jdo/trunk/tck/src:
java/org/apache/jdo/tck/query/delete/ java/org/apache/jdo/tck/query/jdoql/
java/org/apache/jdo/tck/query/result/ testdata/org/apache/jdo/tck/pc/company/
Author: mbo
Date: Sun Oct 19 20:05:43 2014
New Revision: 1632986
URL: http://svn.apache.org/r1632986
Log:
JDO-721: add two new query test cases to test null position specification in the ordering specification
Modified:
db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/delete/DeletePersistentAll.java
db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java
db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/AggregateResult.java
db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/DefaultUnique.java
db/jdo/trunk/tck/src/testdata/org/apache/jdo/tck/pc/company/companyForQueryTests.xml
Modified: db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/delete/DeletePersistentAll.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/delete/DeletePersistentAll.java?rev=1632986&r1=1632985&r2=1632986&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/delete/DeletePersistentAll.java (original)
+++ db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/delete/DeletePersistentAll.java Sun Oct 19 20:05:43 2014
@@ -97,13 +97,13 @@ public class DeletePersistentAll extends
/** */
public void testNoParametersAPI() {
deletePersistentAllByAPIQuery(ASSERTION_FAILED,
- VALID_QUERIES[0], null, 10);
+ VALID_QUERIES[0], null, 11);
}
/** */
public void testNoParametersSingleString() {
deletePersistentAllBySingleStringQuery(ASSERTION_FAILED,
- VALID_QUERIES[0], null, 10);
+ VALID_QUERIES[0], null, 11);
}
/** */
Modified: db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java?rev=1632986&r1=1632985&r2=1632986&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java (original)
+++ db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/jdoql/OrderingSpecification.java Sun Oct 19 20:05:43 2014
@@ -27,8 +27,11 @@ import javax.jdo.Query;
import javax.jdo.Transaction;
import org.apache.jdo.tck.JDO_Test;
+import org.apache.jdo.tck.pc.company.CompanyModelReader;
+import org.apache.jdo.tck.pc.company.DentalInsurance;
import org.apache.jdo.tck.pc.fieldtypes.AllTypes;
import org.apache.jdo.tck.pc.mylib.PCPoint;
+import org.apache.jdo.tck.query.QueryElementHolder;
import org.apache.jdo.tck.query.QueryTest;
import org.apache.jdo.tck.util.BatchTestRunner;
@@ -58,6 +61,55 @@ public class OrderingSpecification exten
private static final String ASSERTION_FAILED =
"Assertion A14.6.6-1 (OrderingSpecification) failed: ";
+ /**
+ * The array of valid queries which may be executed as
+ * single string queries and as API queries.
+ */
+ private static final QueryElementHolder[] VALID_QUERIES = {
+ // nulls first
+ new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ null,
+ /*INTO*/ null,
+ /*FROM*/ DentalInsurance.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ null,
+ /*VARIABLES*/ null,
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ "this.lifetimeOrthoBenefit ascending nulls first",
+ /*FROM*/ null,
+ /*TO*/ null),
+ // nulls last
+ new QueryElementHolder(
+ /*UNIQUE*/ null,
+ /*RESULT*/ null,
+ /*INTO*/ null,
+ /*FROM*/ DentalInsurance.class,
+ /*EXCLUDE*/ null,
+ /*WHERE*/ null,
+ /*VARIABLES*/ null,
+ /*PARAMETERS*/ null,
+ /*IMPORTS*/ null,
+ /*GROUP BY*/ null,
+ /*ORDER BY*/ "this.lifetimeOrthoBenefit ascending nulls last",
+ /*FROM*/ null,
+ /*TO*/ null)
+ };
+
+ /**
+ * The expected results of valid queries.
+ */
+ private Object[] expectedResult = {
+ // nulls first
+ getTransientCompanyModelInstancesAsList(new String[]{
+ "dentalIns99", "dentalIns1", "dentalIns2", "dentalIns3", "dentalIns4", "dentalIns5"}),
+ // nulls last
+ getTransientCompanyModelInstancesAsList(new String[]{
+ "dentalIns1", "dentalIns2", "dentalIns3", "dentalIns4", "dentalIns5", "dentalIns99"})
+ };
+
/**
* The <code>main</code> is called when the class
* is directly executed from the command line.
@@ -68,6 +120,14 @@ public class OrderingSpecification exten
}
/** */
+ public void testPositiveCompanyQueries() {
+ for (int i = 0; i < VALID_QUERIES.length; i++) {
+ executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i], expectedResult[i]);
+ executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i], expectedResult[i]);
+ }
+ }
+
+ /** */
public void testPositive() {
PersistenceManager pm = getPM();
@@ -194,5 +254,7 @@ public class OrderingSpecification exten
protected void localSetUp() {
addTearDownClass(PCPoint.class);
loadAndPersistPCPoints(getPM());
+ addTearDownClass(CompanyModelReader.getTearDownClasses());
+ loadAndPersistCompanyModel(getPM());
}
}
Modified: db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/AggregateResult.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/AggregateResult.java?rev=1632986&r1=1632985&r2=1632986&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/AggregateResult.java (original)
+++ db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/AggregateResult.java Sun Oct 19 20:05:43 2014
@@ -562,7 +562,7 @@ public class AggregateResult extends Que
// AVG(double)
new Double(25000.0),
// AVG(BigDecimal)
- new Double("99.999"),
+ new Double("99.997"),
// AVG(lifetimeOrthoBenefit)
null,
// AVG(((FullTimeEmployee)manager).salary)
Modified: db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/DefaultUnique.java
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/DefaultUnique.java?rev=1632986&r1=1632985&r2=1632986&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/DefaultUnique.java (original)
+++ db/jdo/trunk/tck/src/java/org/apache/jdo/tck/query/result/DefaultUnique.java Sun Oct 19 20:05:43 2014
@@ -161,7 +161,7 @@ public class DefaultUnique extends Query
/*INTO*/ null,
/*FROM*/ DentalInsurance.class,
/*EXCLUDE*/ null,
- /*WHERE*/ null,
+ /*WHERE*/ "employee != null",
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
@@ -175,7 +175,7 @@ public class DefaultUnique extends Query
/*INTO*/ null,
/*FROM*/ DentalInsurance.class,
/*EXCLUDE*/ null,
- /*WHERE*/ null,
+ /*WHERE*/ "employee != null",
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
@@ -189,7 +189,7 @@ public class DefaultUnique extends Query
/*INTO*/ null,
/*FROM*/ DentalInsurance.class,
/*EXCLUDE*/ null,
- /*WHERE*/ null,
+ /*WHERE*/ "employee != null",
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
@@ -203,7 +203,7 @@ public class DefaultUnique extends Query
/*INTO*/ null,
/*FROM*/ DentalInsurance.class,
/*EXCLUDE*/ null,
- /*WHERE*/ null,
+ /*WHERE*/ "employee != null",
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
@@ -221,16 +221,16 @@ public class DefaultUnique extends Query
"emp1", "emp2", "emp3", "emp4", "emp5"}),
// results for aggregate queries
new Long(5),
- new Double("99.999"),
+ new Double("99.997"),
new BigDecimal("2000.99"),
new BigDecimal("2500000.99"),
new BigDecimal("2552001.98"),
// results for aggregate queries with grouping
Arrays.asList(new Object[]{new Long(3), new Long(2)}),
- Arrays.asList(new Object[]{new Double("99.999"), new Double("99.999")}),
- Arrays.asList(new Object[]{new BigDecimal("99.999"), new BigDecimal("99.999")}),
- Arrays.asList(new Object[]{new BigDecimal("99.999"), new BigDecimal("99.999")}),
- Arrays.asList(new Object[]{new BigDecimal("299.997"), new BigDecimal("199.998")})
+ Arrays.asList(new Object[]{new Double("99.996"), new Double("99.9985")}),
+ Arrays.asList(new Object[]{new BigDecimal("99.995"), new BigDecimal("99.998")}),
+ Arrays.asList(new Object[]{new BigDecimal("99.997"), new BigDecimal("99.999")}),
+ Arrays.asList(new Object[]{new BigDecimal("299.988"), new BigDecimal("199.997")})
};
/**
Modified: db/jdo/trunk/tck/src/testdata/org/apache/jdo/tck/pc/company/companyForQueryTests.xml
URL: http://svn.apache.org/viewvc/db/jdo/trunk/tck/src/testdata/org/apache/jdo/tck/pc/company/companyForQueryTests.xml?rev=1632986&r1=1632985&r2=1632986&view=diff
==============================================================================
--- db/jdo/trunk/tck/src/testdata/org/apache/jdo/tck/pc/company/companyForQueryTests.xml (original)
+++ db/jdo/trunk/tck/src/testdata/org/apache/jdo/tck/pc/company/companyForQueryTests.xml Sun Oct 19 20:05:43 2014
@@ -24,6 +24,7 @@
<constructor-arg index="0">
<list>
<ref local="company1"/>
+ <ref local="dentalIns99"/>
</list>
</constructor-arg>
</bean>
@@ -346,28 +347,28 @@
<bean id="dentalIns1" factory-bean="companyFactory" factory-method="newDentalInsurance">
<constructor-arg index="0" type="long"><value>11</value></constructor-arg>
<constructor-arg index="1" type="java.lang.String"><value>Carrier1</value></constructor-arg>
- <constructor-arg index="2" type="java.math.BigDecimal"><value>99.999</value></constructor-arg>
+ <constructor-arg index="2" type="java.math.BigDecimal"><value>99.995</value></constructor-arg>
<property name="employee"><ref bean="emp1"/></property>
</bean>
<bean id="dentalIns2" factory-bean="companyFactory" factory-method="newDentalInsurance">
<constructor-arg index="0" type="long"><value>12</value></constructor-arg>
<constructor-arg index="1" type="java.lang.String"><value>Carrier2</value></constructor-arg>
- <constructor-arg index="2" type="java.math.BigDecimal"><value>99.999</value></constructor-arg>
+ <constructor-arg index="2" type="java.math.BigDecimal"><value>99.996</value></constructor-arg>
<property name="employee"><ref bean="emp2"/></property>
</bean>
<bean id="dentalIns3" factory-bean="companyFactory" factory-method="newDentalInsurance">
<constructor-arg index="0" type="long"><value>13</value></constructor-arg>
<constructor-arg index="1" type="java.lang.String"><value>Carrier3</value></constructor-arg>
- <constructor-arg index="2" type="java.math.BigDecimal"><value>99.999</value></constructor-arg>
+ <constructor-arg index="2" type="java.math.BigDecimal"><value>99.997</value></constructor-arg>
<property name="employee"><ref bean="emp3"/></property>
</bean>
<bean id="dentalIns4" factory-bean="companyFactory" factory-method="newDentalInsurance">
<constructor-arg index="0" type="long"><value>14</value></constructor-arg>
<constructor-arg index="1" type="java.lang.String"><value>Carrier4</value></constructor-arg>
- <constructor-arg index="2" type="java.math.BigDecimal"><value>99.999</value></constructor-arg>
+ <constructor-arg index="2" type="java.math.BigDecimal"><value>99.998</value></constructor-arg>
<property name="employee"><ref bean="emp4"/></property>
</bean>
@@ -378,6 +379,12 @@
<property name="employee"><ref bean="emp5"/></property>
</bean>
+ <bean id="dentalIns99" factory-bean="companyFactory" factory-method="newDentalInsurance">
+ <constructor-arg index="0" type="long"><value>99</value></constructor-arg>
+ <constructor-arg index="1" type="java.lang.String"><value>Carrier99</value></constructor-arg>
+ <constructor-arg index="2" type="java.math.BigDecimal"><null/></constructor-arg>
+ </bean>
+
<bean id="proj1" factory-bean="companyFactory" factory-method="newProject">
<constructor-arg index="0" type="long"><value>1</value></constructor-arg>
<constructor-arg index="1" type="java.lang.String"><value>orange</value></constructor-arg>