Skip to content

Commit

Permalink
JDO-652: more JDOQLTypedQuery test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
mboapache committed Nov 25, 2018
1 parent 077b163 commit dec75a1
Show file tree
Hide file tree
Showing 4 changed files with 539 additions and 428 deletions.
42 changes: 0 additions & 42 deletions tck/src/main/java/org/apache/jdo/tck/query/QueryElementHolder.java
Original file line number Diff line number Diff line change
Expand Up @@ -159,48 +159,6 @@ public QueryElementHolder(Boolean unique, String result,
this.paramValues = paramValues;
}

/**
* Returns an instance of this class holding the given arguments
* such as the candidate class, the filter, etc.
* The given arguments represent JDOQL query elements.
* It is valid to pass <code>null</code> as a value
* for JDOQL querys elements. Such elements are not transfered into a
* JDO {@link javax.jdo.Query} instance.
* Instead, the default of JDO {@link javax.jdo.Query} instance is taken.
* @param unique the JDOQL unique query element
* @param result the JDOQL result query element
* @param resultClass the JDOQL result class query element
* @param candidateClass the JDOQL candidate class query element
* @param excludeSubClasses the JDOQL exclude subclasses query element
* @param filter the JDOQL filter query element
* @param variables the JDOQL variables query element
* @param parameters the JDOQL parameters query element
* @param imports the JDOQL imports query element
* @param grouping the JDOQL grouping query element
* @param ordering the JDOQL ordering query element
* @param from the JDOQL from query element
* @param to the JDOQL to query element
*/
public QueryElementHolder(Boolean unique, String result,
Class resultClass, Class candidateClass,
Boolean excludeSubClasses, String filter,
String variables, String parameters, String imports,
String grouping, String ordering, long from, long to) {
this.unique = unique;
this.result = result;
this.resultClass = resultClass;
this.candidateClass = candidateClass;
this.excludeSubClasses = excludeSubClasses;
this.filter = filter;
this.variables = variables;
this.parameters = parameters;
this.imports = imports;
this.grouping = grouping;
this.ordering = ordering;
this.fromLong = new Long(from);
this.toLong = new Long(to);
}

/**
* Returns an instance of this class holding the given arguments
* such as the candidate class, the filter, etc.
Expand Down
198 changes: 108 additions & 90 deletions tck/src/main/java/org/apache/jdo/tck/query/jdoql/NegativeRange.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
import org.apache.jdo.tck.query.QueryTest;
import org.apache.jdo.tck.util.BatchTestRunner;

import javax.jdo.JDOQLTypedQuery;

/**
*<B>Title:</B> Negative Range.
*<BR>
Expand All @@ -45,79 +47,6 @@ public class NegativeRange extends QueryTest {
/** */
private static final String ASSERTION_FAILED =
"Assertion A14.6.8-2 (NegativeRange) 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*/ null,
/*INTO*/ null,
/*FROM*/ Person.class,
/*EXCLUDE*/ null,
/*WHERE*/ null,
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
/*GROUP BY*/ null,
/*ORDER BY*/ null,
/*FROM*/ 4,
/*TO*/ 4),
new QueryElementHolder(
/*UNIQUE*/ null,
/*RESULT*/ null,
/*INTO*/ null,
/*FROM*/ Person.class,
/*EXCLUDE*/ null,
/*WHERE*/ null,
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
/*GROUP BY*/ null,
/*ORDER BY*/ null,
/*FROM*/ 4,
/*TO*/ 3),
new QueryElementHolder(
/*UNIQUE*/ Boolean.TRUE,
/*RESULT*/ null,
/*INTO*/ null,
/*FROM*/ Person.class,
/*EXCLUDE*/ null,
/*WHERE*/ null,
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
/*GROUP BY*/ null,
/*ORDER BY*/ null,
/*FROM*/ 4,
/*TO*/ 4),
new QueryElementHolder(
/*UNIQUE*/ Boolean.TRUE,
/*RESULT*/ null,
/*INTO*/ null,
/*FROM*/ Person.class,
/*EXCLUDE*/ null,
/*WHERE*/ null,
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
/*GROUP BY*/ null,
/*ORDER BY*/ null,
/*FROM*/ 4,
/*TO*/ 3)
};

/**
* The expected results of valid queries.
*/
private Object[] expectedResult = {
Arrays.asList(new Object[]{}),
Arrays.asList(new Object[]{}),
null,
null
};

/**
* The <code>main</code> is called when the class
Expand All @@ -127,30 +56,119 @@ public class NegativeRange extends QueryTest {
public static void main(String[] args) {
BatchTestRunner.run(NegativeRange.class);
}

/** */
public void testNonUnique() {
for (int i = 0; i < 2; i++) {
executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i],
expectedResult[i]);
executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i],
expectedResult[i]);
}

public void testNonUnique0() {
Object expected = Arrays.asList();

JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);

QueryElementHolder holder = new QueryElementHolder(
/*UNIQUE*/ null,
/*RESULT*/ null,
/*INTO*/ null,
/*FROM*/ Person.class,
/*EXCLUDE*/ null,
/*WHERE*/ null,
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
/*GROUP BY*/ null,
/*ORDER BY*/ null,
/*FROM*/ 4,
/*TO*/ 4,
/*JDOQLTyped*/ query,
/*paramValues*/ null);

executeAPIQuery(ASSERTION_FAILED, holder, expected);
executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
executeJDOQLTypedQuery(ASSERTION_FAILED, holder, expected);
}

/** */
public void testUnique() {
for (int i = 2; i < 4; i++) {
executeAPIQuery(ASSERTION_FAILED, VALID_QUERIES[i],
expectedResult[i]);
executeSingleStringQuery(ASSERTION_FAILED, VALID_QUERIES[i],
expectedResult[i]);
}
public void testNonUnique1() {
Object expected = Arrays.asList();

JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);

QueryElementHolder holder = new QueryElementHolder(
/*UNIQUE*/ null,
/*RESULT*/ null,
/*INTO*/ null,
/*FROM*/ Person.class,
/*EXCLUDE*/ null,
/*WHERE*/ null,
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
/*GROUP BY*/ null,
/*ORDER BY*/ null,
/*FROM*/ 4,
/*TO*/ 3,
/*JDOQLTyped*/ query,
/*paramValues*/ null);

executeAPIQuery(ASSERTION_FAILED, holder, expected);
executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
executeJDOQLTypedQuery(ASSERTION_FAILED, holder, expected);
}

public void testUnique0() {
Object expected = null;

JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);

QueryElementHolder holder = new QueryElementHolder(
/*UNIQUE*/ Boolean.TRUE,
/*RESULT*/ null,
/*INTO*/ null,
/*FROM*/ Person.class,
/*EXCLUDE*/ null,
/*WHERE*/ null,
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
/*GROUP BY*/ null,
/*ORDER BY*/ null,
/*FROM*/ 4,
/*TO*/ 4,
/*JDOQLTyped*/ query,
/*paramValues*/ null);

executeAPIQuery(ASSERTION_FAILED, holder, expected);
executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
executeJDOQLTypedQuery(ASSERTION_FAILED, holder, expected);
}

public void testUnique1() {
Object expected = null;

JDOQLTypedQuery<Person> query = getPM().newJDOQLTypedQuery(Person.class);

QueryElementHolder holder = new QueryElementHolder(
/*UNIQUE*/ Boolean.TRUE,
/*RESULT*/ null,
/*INTO*/ null,
/*FROM*/ Person.class,
/*EXCLUDE*/ null,
/*WHERE*/ null,
/*VARIABLES*/ null,
/*PARAMETERS*/ null,
/*IMPORTS*/ null,
/*GROUP BY*/ null,
/*ORDER BY*/ null,
/*FROM*/ 4,
/*TO*/ 3,
/*JDOQLTyped*/ query,
/*paramValues*/ null);

executeAPIQuery(ASSERTION_FAILED, holder, expected);
executeSingleStringQuery(ASSERTION_FAILED, holder, expected);
executeJDOQLTypedQuery(ASSERTION_FAILED, holder, expected);
}

/**
* @see JDO_Test#localSetUp()
*/
@Override
protected void localSetUp() {
addTearDownClass(CompanyModelReader.getTearDownClasses());
loadAndPersistCompanyModel(getPM());
Expand Down
Loading

0 comments on commit dec75a1

Please sign in to comment.