blob: 987f610e0a4be7cd59171ccfae472b43eb9cb0f3 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.tests.expressions;
import java.util.*;
import org.eclipse.persistence.testing.models.employee.domain.*;
import org.eclipse.persistence.tools.schemaframework.PopulationManager;
import org.eclipse.persistence.queries.*;
import org.eclipse.persistence.expressions.*;
import org.eclipse.persistence.platform.database.*;
import org.eclipse.persistence.internal.helper.*;
import org.eclipse.persistence.exceptions.*;
import org.eclipse.persistence.testing.framework.*;
/**
* This test suite is designed to cover all the API in
* org.eclipse.persistence.expressions.Expression.
* This is in addition to what is covered in ExpressionTestSuite.
* Since 9.0.4
* @author Stephen McRitchie
*/
public class ExpressionUnitTestSuite extends ExpressionTestSuite {
protected PopulationManager manager;
public ExpressionUnitTestSuite() {
setDescription("This suite covers the public/advanced API of Expression.");
}
protected void _addAllOfTest() {
ExpressionBuilder employee = new ExpressionBuilder();
ExpressionBuilder phone = new ExpressionBuilder();
Expression expression = employee.allOf("phoneNumbers", phone.get("areaCode").equal("613"));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 3);
test.setExpression(expression);
test.setSupportedInMemory(false);
test.setName("AllOfTest");
test.setDescription("Test allOf expression");
addTest(test);
}
protected void _addAppendSQLTest() {
Expression expression = (new ExpressionBuilder()).prefixSQL("(t0.F_NAME = 'Bob')");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setSupportedInMemory(false);
test.setName("AppendSQLTest");
test.setDescription("Test appendSQL expression");
addTest(test);
}
/*protected void _addBetween$booleanTest()
{
Expression expression = (new ExpressionBuilder()).get("salary").greaterThan(50000).between(true,true);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 7);
test.setExpression(expression);
test.setName("BetweenBooleanTest");
test.setDescription("Test BETWEEN (boolean) expression");
addTest(test);
}*/
protected void _addBetween$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").between((byte)0, (byte)120);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 3);
test.setExpression(expression);
test.setName("Between$byteTest");
test.setDescription("Test BETWEEN (byte) expression");
addTest(test);
}
protected void _addBetween$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").between('M', 'N');
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 7);
test.setExpression(expression);
test.setName("Between$charTest");
test.setDescription("Test BETWEEN (char) expression");
addTest(test);
}
protected void _addBetween$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").between(3000.0, 6000.0);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 2);
test.setExpression(expression);
test.setName("Between$doubleTest");
test.setDescription("Test BETWEEN (double) expression");
addTest(test);
}
protected void _addBetween$floatTest() {
Expression expression = (new ExpressionBuilder()).get("budget").between(3000.0F, 6000.0F);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 2);
test.setExpression(expression);
test.setName("Between$floatTest");
test.setDescription("Test BETWEEN (float) expression");
addTest(test);
}
protected void _addBetween$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").between(75000L, 87000L);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 2);
test.setExpression(expression);
test.setName("Between$longTest");
test.setDescription("Test BETWEEN (long) expression");
addTest(test);
}
protected void _addBetween$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").between((short)5000, (short)32000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("Between$shortTest");
test.setDescription("Test BETWEEN (short) expression");
addTest(test);
}
protected void _addContainsAllKeyWords$nullTest() {
Expression expression = (new ExpressionBuilder()).anyOf("responsibilitiesList").containsAllKeyWords("");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 6);
test.setExpression(expression);
test.setName("ContainsAllKeyWords$nullTest");
test.setDescription("Test containsAllKeyWords with wildcard % expression");
addTest(test);
}
protected void _addContainsAllKeyWordsTest() {
Expression expression = (new ExpressionBuilder()).anyOf("responsibilitiesList").containsAllKeyWords("java write");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("ContainsAllKeyWordsTest");
test.setDescription("Test containsAllKeyWords expression");
addTest(test);
}
protected void _addContainsAnyKeyWords$nullTest() {
Expression expression = (new ExpressionBuilder()).anyOf("responsibilitiesList").containsAnyKeyWords("");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 6);
test.setExpression(expression);
test.setName("ContainsAnyKeyWords$nullTest");
test.setDescription("Test containsAnyKeyWords with wildcard % expression");
addTest(test);
}
protected void _addContainsAnyKeyWordsTest() {
Expression expression = (new ExpressionBuilder()).anyOf("responsibilitiesList").containsAnyKeyWords("java write");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 3);
test.setExpression(expression);
test.setName("ContainsAnyKeyWordsTest");
test.setDescription("Test containsAnyKeyWords expression");
addTest(test);
}
protected void _addContainsSubstringIgnoringCaseTest() {
Expression expression = (new ExpressionBuilder()).anyOf("responsibilitiesList").containsSubstringIgnoringCase("tHe CoFfEe");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("ContainsSubstringIgnoringCaseTest");
test.setDescription("Test containsSubstringIgnoringCase expression");
addTest(test);
}
protected void _addContainsSubstringTest() {
Expression expression = (new ExpressionBuilder()).anyOf("responsibilitiesList").containsSubstring("the coffee");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("ContainsSubstringTest");
test.setDescription("Test containsSubstring expression");
addTest(test);
}
protected void _addCurrentDateTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("period").get("startDate").lessThan(builder.currentDateDate());
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(expression);
test.setName("CurrentDateTest");
test.setDescription("Test currentDate expression");
test.addUnsupportedPlatform(DB2Platform.class);
test.addUnsupportedPlatform(TimesTenPlatform.class);
test.addUnsupportedPlatform(SymfowarePlatform.class);
addTest(test);
}
protected void _addDifferenceTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("firstName").difference("Bib").equal(4);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("DifferenceTest");
test.setDescription("Test Difference expression");
test.addSupportedPlatform(SybasePlatform.class);
test.addSupportedPlatform(SQLAnywherePlatform.class);
addTest(test);
}
/*
* The following are equal(primitive) tests...
*/
protected void _addEqual$booleanTest() {
Expression expression = (new ExpressionBuilder()).get("salary").equal(false);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 0);
test.setExpression(expression);
test.setName("Equal$booleanTest");
test.setDescription("Test EQUAL (boolean) expression");
addTest(test);
}
protected void _addEqual$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").equal((byte)100).not();
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 5);
test.setExpression(expression);
test.setName("Equal$byteTest");
test.setDescription("Test Equal (byte) expression");
addTest(test);
}
protected void _addEqual$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").equal('M');
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 7);
test.setExpression(expression);
test.setName("Equal$charTest");
test.setDescription("Test EQUAL (char) expression");
addTest(test);
}
protected void _addEqual$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").equal(4000.98);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("Equal$doubleTest");
test.setDescription("Test Equal (double) expression");
addTest(test);
}
/**
* This tests the equals(float) API.
* floats are (base 2) approximations, and cannot represent all numbers,
* so this test was changed to use 5000 to avoid float conversion issues.
*/
protected void _addEqual$floatTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression budget = builder.get("budget");
Expression expression = ExpressionMath.max(budget, 0).equal(5000F);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("Equal$floatTest");
test.setDescription("Test Equal (float) expression");
test.addUnsupportedPlatform(DB2Platform.class);
test.addUnsupportedPlatform(SybasePlatform.class);
test.addUnsupportedPlatform(SQLAnywherePlatform.class);
test.addUnsupportedPlatform(SQLServerPlatform.class);
test.addUnsupportedPlatform(org.eclipse.persistence.platform.database.TimesTenPlatform.class);
addTest(test);
}
protected void _addEqual$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").equal(75000L);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("Equal$longTest");
test.setDescription("Test Equal (long) expression");
addTest(test);
}
protected void _addEqual$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").equal((short)31000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("Equal$shortTest");
test.setDescription("Test Equal (short) expression");
addTest(test);
}
protected void _addGetFunction$int$VectorTest() {
// The selector should be unique and the selectors for pre-defined operators are > 0.
int applyRaiseSelector = 0 - "applyRaise".hashCode();
Vector v = new Vector();
v.addElement("(");
v.addElement(" * (100 + ");
v.addElement(") / 100)");
ExpressionOperator applyRaiseOperator = new ExpressionOperator(applyRaiseSelector, v);
applyRaiseOperator.bePrefix();
ExpressionOperator.addOperator(applyRaiseOperator);
// The following query will select all employees who will still have a salary under
// $50,000 after a 15% raise.
Vector arguments = new Vector();
arguments.addElement(15);
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("salary").getFunction(applyRaiseSelector, arguments).lessThan(50000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 3);
test.setExpression(expression);
test.setSupportedInMemory(false);
test.setName("GetFunction$int$Vector$Test");
test.setDescription("Test GetFunction(operator,arguments) expression");
addTest(test);
}
/*
* The following are greaterThan(primitive) tests...
*/
protected void _addGetFunctionWithArgumentsTest() {
Vector arguments = new Vector();
arguments.addElement(new String("Smith"));
Expression expression = (new ExpressionBuilder()).get("firstName").getFunctionWithArguments("Concat", arguments).equal("BobSmith");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.addSupportedPlatform(OraclePlatform.class);
test.addSupportedPlatform(MySQLPlatform.class);
test.addUnsupportedPlatform(SymfowarePlatform.class);
test.setName("GetFunctionWithArgumentsTest");
test.setDescription("Test GetFunctionWithArguments expression");
addTest(test);
}
/*
* The following are greaterThan(primitive) tests...
*/
protected void _addGreaterThan$booleanTest() {
Expression expression = (new ExpressionBuilder()).get("salary").greaterThan(true);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(expression);
test.setName("GreaterThan$booleanTest");
test.setDescription("Test GreaterThan (boolean) expression");
addTest(test);
}
protected void _addGreaterThan$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").greaterThan((byte)100);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 4);
test.setExpression(expression);
test.setName("GreaterThan$byteTest");
test.setDescription("Test GreaterThan (byte) expression");
addTest(test);
}
protected void _addGreaterThan$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").greaterThan('F');
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 7);
test.setExpression(expression);
test.setName("GreaterThan$charTest");
test.setDescription("Test GreaterThan (char) expression");
addTest(test);
}
protected void _addGreaterThan$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").greaterThan(4000.98);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("GreaterThan$doubleTest");
test.setDescription("Test GreaterThan (double) expression");
addTest(test);
}
protected void _addGreaterThan$floatTest() {
Expression expression = (new ExpressionBuilder()).get("budget").greaterThan(4000F);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 2);
test.setExpression(expression);
test.setName("GreaterThan$floatTest");
test.setDescription("Test GreaterThan (float) expression");
addTest(test);
}
protected void _addGreaterThan$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").greaterThan(75000L);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 3);
test.setExpression(expression);
test.setName("GreaterThan$longTest");
test.setDescription("Test GreaterThan (long) expression");
addTest(test);
}
protected void _addGreaterThan$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").greaterThan((short)32000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 11);
test.setExpression(expression);
test.setName("GreaterThan$shortTest");
test.setDescription("Test GreaterThan (short) expression");
addTest(test);
}
/*
* The following are greaterThanEqual(primitive) tests...
*/
protected void _addGreaterThanEqual$booleanTest() {
Expression expression = (new ExpressionBuilder()).get("salary").greaterThanEqual(true);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(expression);
test.setName("GreaterThanEqual$booleanTest");
test.setDescription("Test GreaterThanEqual (boolean) expression");
addTest(test);
}
protected void _addGreaterThanEqual$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").greaterThanEqual((byte)100);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 4);
test.setExpression(expression);
test.setName("GreaterThanEqual$byteTest");
test.setDescription("Test GreaterThanEqual (byte) expression");
addTest(test);
}
protected void _addGreaterThanEqual$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").greaterThanEqual('M');
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 7);
test.setExpression(expression);
test.setName("GreaterThanEqual$charTest");
test.setDescription("Test GreaterThanEqual (char) expression");
addTest(test);
}
protected void _addGreaterThanEqual$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").greaterThanEqual(4000.98);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 2);
test.setExpression(expression);
test.setName("GreaterThanEqual$doubleTest");
test.setDescription("Test GreaterThanEqual (double) expression");
addTest(test);
}
protected void _addGreaterThanEqual$floatTest() {
Expression expression = (new ExpressionBuilder()).get("budget").greaterThanEqual(4000.98F);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 2);
test.setExpression(expression);
test.setName("GreaterThanEqual$floatTest");
test.setDescription("Test GreaterThanEqual (float) expression");
addTest(test);
}
protected void _addGreaterThanEqual$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").greaterThanEqual(75000L);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 4);
test.setExpression(expression);
test.setName("GreaterThanEqual$longTest");
test.setDescription("Test GreaterThanEqual (long) expression");
addTest(test);
}
protected void _addGreaterThanEqual$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").greaterThanEqual((short)31000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(expression);
test.setName("GreaterThanEqual$shortTest");
test.setDescription("Test GreaterThanEqual (short) expression");
addTest(test);
}
protected void _addHexToRawTest() {
Expression expression = (new ExpressionBuilder()).get("firstName").hexToRaw().equal("Bob");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("HexToRawTest");
test.setDescription("Test HexToRaw expression");
addTest(test);
}
/*
* The following are in(primitive[]) tests...
*/
protected void _addIn$booleanTest() {
Expression expression = (new ExpressionBuilder()).get("salary").in(new boolean[] { true });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 0);
test.setExpression(expression);
test.setName("In$booleanTest");
test.setDescription("Test In (boolean) expression");
addTest(test);
}
protected void _addIn$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").in(new byte[] { (byte)100 }).not();
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 5);
test.setExpression(expression);
test.setName("In$byteTest");
test.setDescription("Test In (byte) expression");
addTest(test);
}
protected void _addIn$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").in(new char[] { 'A', 'N', 'M' });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 7);
test.setExpression(expression);
test.setName("In$charTest");
test.setDescription("Test In (char) expression");
addTest(test);
}
protected void _addIn$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").in(new double[] { 4000.98 });
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("In$doubleTest");
test.setDescription("Test In (double) expression");
addTest(test);
}
/**
* Test changed to choose float value that can be represented as a float without conversion issues.
* This method also tests ExpressionMath.subtract(Expression, int)
*/
protected void _addIn$floatTest() {
Expression expression =
ExpressionMath.subtract((new ExpressionBuilder()).get("budget"), 1000).in(new float[] { 4000F });
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("In$floatTest");
test.setDescription("Test In (float) expression");
addTest(test);
}
protected void _addIn$intTest() {
Expression expression = (new ExpressionBuilder()).get("salary").in(new int[] { 2, 5654443, 75000 });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("In$intTest");
test.setDescription("Test In (int) expression");
addTest(test);
}
protected void _addIn$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").in(new long[] { 2L, 5654443L, 75000L });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("In$longTest");
test.setDescription("Test In (long) expression");
addTest(test);
}
protected void _addIn$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").in(new short[] { (short)-31000, (short)31000 });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("In$shortTest");
test.setDescription("Test In (short) expression");
addTest(test);
}
protected void _addIs___ExpressionTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression exp = builder.get("salary").greaterThan(0).not();
if (!exp.isCompoundExpression() && !exp.isDataExpression() && !exp.isLiteralExpression() && !exp.isLogicalExpression()) {
exp = exp.not();
}
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(exp);
test.setName("Is___ExpressionTest");
test.setDescription("Test is{Compound,Data,Literal,Logical}Expression");
addTest(test);
}
private void _addIsEmptyTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.isEmpty("projects");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 6);
test.setExpression(expression);
test.testBatchAttributesOnEmployee();
test.setName("IsEmptyWithBatchAttributeTest");
test.setDescription("Test batch reading attributes from query with isEmpty.");
test.addUnsupportedPlatform(org.eclipse.persistence.platform.database.TimesTenPlatform.class);
addTest(test);
}
protected void _addLengthTest() {
Expression expression = (new ExpressionBuilder()).get("firstName").length().equal(3);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("LengthTest");
test.setDescription("Test Length expression");
addTest(test);
}
/*
* The following are lessThan(primitive) tests...
*/
protected void _addLessThan$booleanTest() {
Expression expression = (new ExpressionBuilder()).get("salary").lessThan(true);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 0);
test.setExpression(expression);
test.setName("LessThan$booleanTest");
test.setDescription("Test LessThan (boolean) expression");
addTest(test);
}
protected void _addLessThan$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").lessThan((byte)100);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("LessThan$byteTest");
test.setDescription("Test LessThan (byte) expression");
addTest(test);
}
protected void _addLessThan$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").lessThan('M');
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 5);
test.setExpression(expression);
test.setName("LessThan$charTest");
test.setDescription("Test LessThan (char) expression");
addTest(test);
}
protected void _addLessThan$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").lessThan(4000.98);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 3);
test.setExpression(expression);
test.setName("LessThan$doubleTest");
test.setDescription("Test LessThan (double) expression");
addTest(test);
}
protected void _addLessThan$floatTest() {
Expression expression = (new ExpressionBuilder()).get("budget").lessThan(4000.98F);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 3);
test.setExpression(expression);
test.setName("LessThan$floatTest");
test.setDescription("Test LessThan (float) expression");
addTest(test);
}
protected void _addLessThan$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").lessThan(75000L);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 8);
test.setExpression(expression);
test.setName("LessThan$longTest");
test.setDescription("Test LessThan (long) expression");
addTest(test);
}
protected void _addLessThan$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").lessThan((short)32000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("LessThan$shortTest");
test.setDescription("Test LessThan (short) expression");
addTest(test);
}
/*
* The following are lessThanEqual(primitive) tests...
*/
protected void _addLessThanEqual$booleanTest() {
Expression expression = (new ExpressionBuilder()).get("salary").lessThanEqual(true);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 0);
test.setExpression(expression);
test.setName("LessThanEqual$booleanTest");
test.setDescription("Test LessThanEqual (boolean) expression");
addTest(test);
}
protected void _addLessThanEqual$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").lessThanEqual((byte)100);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("LessThanEqual$byteTest");
test.setDescription("Test LessThanEqual (byte) expression");
addTest(test);
}
protected void _addLessThanEqual$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").lessThanEqual('F');
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 5);
test.setExpression(expression);
test.setName("LessThanEqual$charTest");
test.setDescription("Test LessThanEqual (char) expression");
addTest(test);
}
protected void _addLessThanEqual$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").lessThanEqual(4000.98);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 4);
test.setExpression(expression);
test.setName("LessThanEqual$doubleTest");
test.setDescription("Test LessThanEqual (double) expression");
addTest(test);
}
protected void _addLessThanEqual$floatTest() {
Expression expression = ExpressionMath.add((new ExpressionBuilder()).get("budget"), 1000).lessThanEqual(6000F);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 5);
test.setExpression(expression);
test.setName("LessThanEqual$floatTest");
test.setDescription("Test LessThanEqual (float) expression");
addTest(test);
}
protected void _addLessThanEqual$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").lessThanEqual(75000L);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 9);
test.setExpression(expression);
test.setName("LessThanEqual$longTest");
test.setDescription("Test LessThanEqual (long) expression");
addTest(test);
}
protected void _addLessThanEqual$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").lessThanEqual((short)31000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("LessThanEqual$shortTest");
test.setDescription("Test LessThanEqual (short) expression");
addTest(test);
}
protected void _addLocate$StringTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("firstName").locate("ob").equal(2);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("Locate$StringTest");
test.setDescription("Test locate(String) expression");
addTest(test);
}
protected void _addLocate$String$intTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.anyOf("responsibilities").locate("coffee", 4).greaterThan(0);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("Locate$String$intTest");
test.setDescription("Test locate(String, int) expression");
addTest(test);
}
protected void _addMonthsBetweenTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("period").get("startDate").monthsBetween(builder.currentDate()).lessThan(0);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(expression);
test.setName("MonthsBetweenTest");
test.setDescription("Test monthsBetween expression");
test.addSupportedPlatform(OraclePlatform.class);
addTest(test);
}
protected void _addNextDayTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("period").get("startDate").lessThan(builder.get("period").get("startDate").nextDay("Sunday"));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(expression);
test.setName("NextDayTest");
test.setDescription("Test nextDay expression");
test.addSupportedPlatform(OraclePlatform.class);
addTest(test);
}
protected void _addNoneOfTest() {
ExpressionBuilder employee = new ExpressionBuilder();
ExpressionBuilder phone = new ExpressionBuilder();
Expression expression = employee.noneOf("phoneNumbers", phone.get("areaCode").equal("613"));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 2);
test.setExpression(expression);
test.setSupportedInMemory(false);
test.setName("NoneOfTest");
test.setDescription("Test noneOf expression");
addTest(test);
}
/*
* The following tests notBetween.
*/
protected void _addNotBetween$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").notBetween((byte)0, (byte)120);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 2);
test.setExpression(expression);
test.setName("NotBetween$byteTest");
test.setDescription("Test NotBetween (byte) expression");
addTest(test);
}
protected void _addNotBetween$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").notBetween('M', 'N');
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 5);
test.setExpression(expression);
test.setName("NotBetween$charTest");
test.setDescription("Test NotBetween (char) expression");
addTest(test);
}
protected void _addNotBetween$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").notBetween(3000.0, 6000.0);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 3);
test.setExpression(expression);
test.setName("NotBetween$doubleTest");
test.setDescription("Test NotBetween (double) expression");
addTest(test);
}
protected void _addNotBetween$ExpressionTest() {
ExpressionBuilder emp = new ExpressionBuilder();
Expression expression = emp.get("salary").notBetween(emp.anyOf("managedEmployees").get("salary"), emp.get("manager").get("salary"));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 3);
test.setExpression(expression);
test.setSupportedInMemory(false);
test.setName("NotBetween$ExpressionTest");
test.setDescription("Test NotBetween (expression) expression");
addTest(test);
}
protected void _addNotBetween$floatTest() {
Expression expression = (new ExpressionBuilder()).get("budget").notBetween(3000.0F, 6000.0F);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 3);
test.setExpression(expression);
test.setName("NotBetween$floatTest");
test.setDescription("Test NotBetween (float) expression");
addTest(test);
}
protected void _addNotBetween$intTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notBetween(75000, 87000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 10);
test.setExpression(expression);
test.setName("NotBetween$intTest");
test.setDescription("Test NotBetween (int) expression");
addTest(test);
}
protected void _addNotBetween$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notBetween(75000L, 87000L);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 10);
test.setExpression(expression);
test.setName("NotBetween$longTest");
test.setDescription("Test NotBetween (long) expression");
addTest(test);
}
protected void _addNotBetween$ObjectTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("salary").notBetween(builder.get("manager").get("salary"), 500000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 3);
test.setExpression(expression);
test.setName("NotBetween$ObjectTest");
test.setDescription("Test NotBetween (Object) expression");
addTest(test);
}
protected void _addNotBetween$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notBetween((short)5000, (short)32000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 11);
test.setExpression(expression);
test.setName("NotBetween$shortTest");
test.setDescription("Test NotBetween (short) expression");
addTest(test);
}
private void _addNotEmptyTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.notEmpty("projects");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 6);
test.setExpression(expression);
test.testBatchAttributesOnEmployee();
test.setName("NotEmptyWithBatchAttributeTest");
test.setDescription("Test batch reading attributes from query with notEmpty.");
test.addUnsupportedPlatform(org.eclipse.persistence.platform.database.TimesTenPlatform.class);
addTest(test);
}
/*
* The following are notEqual(primitive) tests...
*/
protected void _addNotEqual$booleanTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notEqual(true);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(expression);
test.setName("NotEqual$booleanTest");
test.setDescription("Test NotEqual (boolean) expression");
addTest(test);
}
protected void _addNotEqual$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").notEqual((byte)100);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 5);
test.setExpression(expression);
test.setName("NotEqual$byteTest");
test.setDescription("Test NotEqual (byte) expression");
addTest(test);
}
protected void _addNotEqual$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").notEqual('M');
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 5);
test.setExpression(expression);
test.setName("NotEqual$charTest");
test.setDescription("Test NotEqual (char) expression");
addTest(test);
}
protected void _addNotEqual$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").notEqual(4000.98);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 4);
test.setExpression(expression);
test.setName("NotEqual$doubleTest");
test.setDescription("Test NotEqual (double) expression");
addTest(test);
}
/**
* This method also tests ExpressionMath.divide(Expression, int).
*/
protected void _addNotEqual$floatTest() {
Expression expression = ExpressionMath.divide((new ExpressionBuilder()).get("budget"), 1).notEqual(5000F);
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 4);
test.setExpression(expression);
test.setName("NotEqual$floatTest");
test.setDescription("Test NotEqual (float) expression");
addTest(test);
}
protected void _addNotEqual$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notEqual(75000L);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 11);
test.setExpression(expression);
test.setName("NotEqual$longTest");
test.setDescription("Test NotEqual (long) expression");
addTest(test);
}
protected void _addNotEqual$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notEqual((short)31000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 11);
test.setExpression(expression);
test.setName("NotEqual$shortTest");
test.setDescription("Test NotEqual (short) expression");
addTest(test);
}
/*
* The following are notIn(primitive[]) tests...
*/
protected void _addNotIn$booleanTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notIn(new boolean[] { false, true });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 12);
test.setExpression(expression);
test.setName("NotIn$booleanTest");
test.setDescription("Test NotIn (boolean) expression");
addTest(test);
}
protected void _addNotIn$byteTest() {
Expression expression = (new ExpressionBuilder()).get("budget").notIn(new byte[] { (byte)100 });
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 5);
test.setExpression(expression);
test.setName("NotIn$byteTest");
test.setDescription("Test NotIn (byte) expression");
addTest(test);
}
protected void _addNotIn$charTest() {
Expression expression = (new ExpressionBuilder()).getField("GENDER").notIn(new char[] { 'A', 'N', 'M' });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 5);
test.setExpression(expression);
test.setName("NotIn$charTest");
test.setDescription("Test NotIn (char) expression");
addTest(test);
}
protected void _addNotIn$doubleTest() {
Expression expression = (new ExpressionBuilder()).get("budget").notIn(new double[] { 4000.98 });
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 4);
test.setExpression(expression);
test.setName("NotIn$doubleTest");
test.setDescription("Test NotIn (double) expression");
addTest(test);
}
/**
* This method also tests ExpressionMath.subtract(Expression, int)
*/
protected void _addNotIn$floatTest() {
Expression expression =
ExpressionMath.subtract((new ExpressionBuilder()).get("budget"), 1000).notIn(new float[] { 4000F });
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 4);
test.setExpression(expression);
test.setName("NotIn$floatTest");
test.setDescription("Test NotIn (float) expression");
addTest(test);
}
protected void _addNotIn$intTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notIn(new int[] { 2, 5654443, 75000 });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 11);
test.setExpression(expression);
test.setName("In$intTest");
test.setDescription("Test NotIn (int) expression");
addTest(test);
}
protected void _addNotIn$longTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notIn(new long[] { 2L, 5654443L, 75000L });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 11);
test.setExpression(expression);
test.setName("NotIn$longTest");
test.setDescription("Test NotIn (long) expression");
addTest(test);
}
protected void _addNotIn$shortTest() {
Expression expression = (new ExpressionBuilder()).get("salary").notIn(new short[] { (short)-31000, (short)31000 });
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 11);
test.setExpression(expression);
test.setName("In$shortTest");
test.setDescription("Test In (short) expression");
addTest(test);
}
protected void _addOr$DifferentBuildersTest() {
ExpressionBuilder builder = new ExpressionBuilder();
ExpressionBuilder builder2 = new ExpressionBuilder();
Expression expression1 = builder.get("firstName").equal("Bob");
Expression expression2 = builder2.get("firstName").equal("Betty");
Expression expression = expression1.or(expression2);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 2);
test.setExpression(expression);
test.setName("Or$DifferentBuildersTest");
test.setDescription("Test Or(DifferentBuilders) expression");
addTest(test);
}
/**
* Tests 'appending' sql to an existing selection criteria.
* For bug 2872161.
*/
protected void _addPostfixSQLTest() {
Expression expression = (new ExpressionBuilder()).get("lastName").equal("Way");
expression = expression.postfixSQL(" AND (t0.F_NAME = 'Sarah')");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("PostfixSQLTest");
test.setDescription("Test postfixSQL expression");
test.addSupportedPlatform(OraclePlatform.class);
test.addSupportedPlatform(MySQLPlatform.class);
addTest(test);
}
/**
* Tests 'appending' sql to an existing selection criteria.
* The custom sql appears before the sql for the expression it is
* applied to.
* For bug 2872161.
*/
protected void _addPrefixSQLTest() {
Expression expression = (new ExpressionBuilder()).get("lastName").equal("Way");
expression = expression.prefixSQL("(t0.F_NAME = 'Sarah') AND ");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("PrefixSQLTest");
test.setDescription("Test prefixSQL expression");
test.addSupportedPlatform(OraclePlatform.class);
test.addSupportedPlatform(MySQLPlatform.class);
addTest(test);
}
/**
* For bug 2916893.
*/
protected void _addRightTrim$StringTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("firstName").rightTrim("b").equal("Bo");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("RightTrim$StringTest");
test.setDescription("Test RightTrim(String) expression");
test.addUnsupportedPlatform(DB2Platform.class);
test.addUnsupportedPlatform(SybasePlatform.class);
test.addUnsupportedPlatform(SQLAnywherePlatform.class);
test.addUnsupportedPlatform(SQLServerPlatform.class);
test.addUnsupportedPlatform(MySQLPlatform.class);
test.addUnsupportedPlatform(TimesTenPlatform.class);
addTest(test);
}
protected void _addRightTrimTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("firstName").equal(builder.value("Bob ").rightTrim());
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setSupportedInMemory(false);
test.setName("RightTrimTest");
test.setDescription("Test RightTrim expression");
addTest(test);
}
protected void _addRoundDateTest() {
Calendar calendar = new GregorianCalendar(1902, 0, 1);
Object date = calendar.getTime();
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("period").get("startDate").roundDate("YEAR").equal(builder.value(date).roundDate("YEAR"));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 6);
test.setExpression(expression);
test.setName("RoundDateTest");
test.setDescription("Test RoundDate expression");
addTest(test);
}
private void _addSizeTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.size("projects").greaterThan(2);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 4);
test.setExpression(expression);
test.testBatchAttributesOnEmployee();
test.setName("SizeWithBatchAttributeTest");
test.setDescription("Test batch reading attributes from query with size expression.");
test.addUnsupportedPlatform(org.eclipse.persistence.platform.database.TimesTenPlatform.class);
addTest(test);
}
protected void _addStandardDeviationTest() {
ExpressionBuilder builder = new ExpressionBuilder();
ExpressionBuilder subBuilder = new ExpressionBuilder();
Expression subExpression = subBuilder.get("manager").equal(builder);
ReportQuery subQuery = new ReportQuery(Employee.class, subExpression);
subQuery.addStandardDeviation("salary");
Expression expression = builder.subQuery(subQuery).greaterThan(19000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.addUnsupportedPlatform(SybasePlatform.class);
test.addUnsupportedPlatform(SQLAnywherePlatform.class);
test.addUnsupportedPlatform(TimesTenPlatform.class);
test.addUnsupportedPlatform(DerbyPlatform.class);
test.addUnsupportedPlatform(SymfowarePlatform.class);
test.setExpression(expression);
test.setName("StandardDeviationTest");
test.setDescription("Test StandardDeviation expression");
addTest(test);
}
protected void _addToCharacterTest() {
Expression expression = (new ExpressionBuilder()).get("firstName").toCharacter().equal("Bob");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("ToCharacterTest");
test.setDescription("Test ToCharacter expression");
addTest(test);
}
protected void _addToUpperCasedWordsTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.anyOf("responsibilitiesList").toUppercaseCasedWords().containsSubstring("The Coffee");
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("ToUpperCasedWordsTest");
test.setDescription("Test toUpperCasedWords expression");
test.addSupportedPlatform(OraclePlatform.class);
test.addSupportedPlatform(PostgreSQLPlatform.class);
addTest(test);
}
/*
* The following are value(primitive) tests...
*/
protected void _addValue$booleanTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("salary").equal(builder.value(false));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 0);
test.setExpression(expression);
test.setName("Value$booleanTest");
test.setDescription("Test Value (boolean) expression");
addTest(test);
}
protected void _addValue$byteTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("budget").equal(builder.value((byte)100)).not();
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 5);
test.setExpression(expression);
test.setName("Value$byteTest");
test.setDescription("Test Value (byte) expression");
addTest(test);
}
protected void _addValue$charTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.getField("GENDER").equal(builder.value('M'));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 7);
test.setExpression(expression);
test.setName("Value$charTest");
test.setDescription("Test Value (char) expression");
addTest(test);
}
protected void _addValue$doubleTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("budget").equal(builder.value(4000.98));
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("Value$doubleTest");
test.setDescription("Test Value (double) expression");
addTest(test);
}
/**
* This method also tests ExpressionMath.add(Expression, int);
*/
protected void _addValue$floatTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = ExpressionMath.add(builder.get("budget"), 0).equal(builder.value(5000F));
ReadAllExpressionTest test = new ReadAllExpressionTest(LargeProject.class, 1);
test.setExpression(expression);
test.setName("Value$floatTest");
test.setDescription("Test Value (float) expression");
addTest(test);
}
protected void _addValue$longTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("salary").equal(builder.value(75000L));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("Value$longTest");
test.setDescription("Test Value (long) expression");
addTest(test);
}
protected void _addValue$shortTest() {
ExpressionBuilder builder = new ExpressionBuilder();
Expression expression = builder.get("salary").equal(builder.value((short)31000));
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 1);
test.setExpression(expression);
test.setName("Value$shortTest");
test.setDescription("Test Value (short) expression");
addTest(test);
}
protected void _addVarianceTest() {
ExpressionBuilder builder = new ExpressionBuilder();
ExpressionBuilder subBuilder = new ExpressionBuilder();
Expression subExpression = subBuilder.get("manager").equal(builder);
ReportQuery subQuery = new ReportQuery(Employee.class, subExpression);
subQuery.addVariance("salary");
Expression expression = builder.subQuery(subQuery).greaterThan(1000000);
ReadAllExpressionTest test = new ReadAllExpressionTest(Employee.class, 2);
test.addUnsupportedPlatform(SybasePlatform.class);
test.addUnsupportedPlatform(SQLAnywherePlatform.class);
test.addUnsupportedPlatform(SQLServerPlatform.class);
test.addUnsupportedPlatform(DerbyPlatform.class);
test.addUnsupportedPlatform(TimesTenPlatform.class);
test.addUnsupportedPlatform(SymfowarePlatform.class);
test.setExpression(expression);
test.setName("VarianceTest");
test.setDescription("Test Variance expression");
addTest(test);
}
public void _testAliasForTableTest() {
// Uses ConstantExpression to test methods defined in abstract Expression.
Expression exp = (new ExpressionBuilder()).value(0);
if (exp.aliasForTable(null) != null) {
throw new TestErrorException("Expression.aliasForTable(...) should return null.");
}
}
public void _testCreate$Expression$Object$ExpressionOperatorTest() {
// Uses ConstantExpression to test methods defined in abstract Expression.
Expression exp = (new ExpressionBuilder()).value(0);
if (exp.create(exp, exp, null) != exp) {
throw new TestErrorException("Expression.create(Expression, Object, ExpressionOperator) should return itself.");
}
}
public void _testCreate$Expression$Vector$ExpressionOperatorTest() {
// Uses ConstantExpression to test methods defined in abstract Expression.
Expression exp = (new ExpressionBuilder()).value(0);
if (exp.create(exp, new Vector(1), null) != exp) {
throw new TestErrorException("Expression.create(Expression, Vector, ExpressionOperator) should return itself.");
}
}
public void _testDoesConformTest() {
try {
Expression exp = (new ExpressionBuilder()).value(0);
exp.doesConform(null, null, null, 0);
throw new TestErrorException("Cannot conform expression exception not thrown.");
} catch (QueryException e) {
;
}
}
public void _testGetField$DatabaseFieldTest() {
try {
(new ExpressionBuilder()).value(0).getField(new DatabaseField("Foo"));
throw new TestErrorException("Expression.getField(DatabaseField) should throw query exception.");
} catch (QueryException e) {
;
}
}
public void _testGetField$StringTest() {
try {
(new ExpressionBuilder()).value(0).getField(new String("Foo"));
throw new TestErrorException("Expression.getField(String) should throw query exception.");
} catch (QueryException e) {
;
}
}
public void _testGetFieldsTest() {
// Uses ConstantExpression to test methods defined in abstract Expression.
Expression exp = (new ExpressionBuilder()).value(0);
if ((exp.getFields() == null) || (exp.getFields().size() != 0)) {
throw new TestErrorException("Expression.getFields() should return empty vector");
}
}
public void _testGetNameTest() {
// Uses ConstantExpression to test methods defined in abstract Expression.
Expression exp = (new ExpressionBuilder()).value(0);
if (exp.getName() != "") {
throw new TestErrorException("Expression.getName(\"\") should return empty string.");
}
}
public void _testGetOperatorTest() {
// Uses ConstantExpression to test methods defined in abstract Expression.
Expression exp = (new ExpressionBuilder()).value(0);
if (exp.getOperator() != null) {
throw new TestErrorException("Expression.getOperator() should return null.");
}
}
public void _testGetTable$DatabaseTableTest() {
try {
(new ExpressionBuilder()).value(0).getTable(new DatabaseTable("Foo"));
throw new TestErrorException("Expression.getTable(DatabaseTable) should throw query exception.");
} catch (QueryException e) {
;
}
}
public void _testGetTable$StringTest() {
try {
(new ExpressionBuilder()).value(0).getTable(new String("Foo"));
throw new TestErrorException("Expression.getTable(String) should throw query exception.");
} catch (QueryException e) {
;
}
}
public void _testTwist$null$ExpressionTest() {
// Uses ConstantExpression to test methods defined in abstract Expression.
Expression exp = (new ExpressionBuilder()).value(0);
if (exp.twist(null, exp) != null) {
throw new TestErrorException("Expression.twist(exp, newBase) should return null if exp null.");
}
}
public void _testValueFromObjectTest() {
try {
Expression exp = (new ExpressionBuilder()).get("salary").greaterThan(0);
exp.valueFromObject(null, null, null, 0);
throw new TestErrorException("Cannot conform expression exception not thrown.");
} catch (QueryException e) {
;
}
}
public void addBaseExpressionTests() {
super.addTests();
}
@Override
public void addTests() {
setManager(PopulationManager.getDefaultManager());
_addAllOfTest();
_addAppendSQLTest();
_addBetween$byteTest();
_addBetween$charTest();
_addBetween$doubleTest();
_addBetween$floatTest();
_addBetween$longTest();
_addBetween$shortTest();
_addContainsAllKeyWords$nullTest();
_addContainsAllKeyWordsTest();
_addContainsAnyKeyWords$nullTest();
_addContainsAnyKeyWordsTest();
_addContainsSubstringTest();
_addContainsSubstringIgnoringCaseTest();
_addCurrentDateTest();
_addDifferenceTest();
_addEqual$booleanTest();
_addEqual$byteTest();
_addEqual$charTest();
_addEqual$doubleTest();
_addEqual$floatTest();
_addEqual$longTest();
_addEqual$shortTest();
_addGetFunction$int$VectorTest();
_addGetFunctionWithArgumentsTest();
_addGreaterThan$booleanTest();
_addGreaterThan$byteTest();
_addGreaterThan$charTest();
_addGreaterThan$doubleTest();
_addGreaterThan$floatTest();
_addGreaterThan$longTest();
_addGreaterThan$shortTest();
_addGreaterThanEqual$booleanTest();
_addGreaterThanEqual$byteTest();
_addGreaterThanEqual$charTest();
_addGreaterThanEqual$doubleTest();
_addGreaterThanEqual$floatTest();
_addGreaterThanEqual$longTest();
_addGreaterThanEqual$shortTest();
// broken _addHexToRawTest();
_addIn$booleanTest();
_addIn$byteTest();
_addIn$charTest();
_addIn$doubleTest();
_addIn$floatTest();
_addIn$intTest();
_addIn$longTest();
_addIn$shortTest();
_addIs___ExpressionTest();
_addIsEmptyTest();
_addLengthTest();
_addLessThan$booleanTest();
_addLessThan$byteTest();
_addLessThan$charTest();
_addLessThan$doubleTest();
_addLessThan$floatTest();
_addLessThan$longTest();
_addLessThan$shortTest();
_addLessThanEqual$booleanTest();
_addLessThanEqual$byteTest();
_addLessThanEqual$charTest();
_addLessThanEqual$doubleTest();
_addLessThanEqual$floatTest();
_addLessThanEqual$longTest();
_addLessThanEqual$shortTest();
// broken _addLocate$StringTest();
// broken _addLocate$String$intTest();
_addMonthsBetweenTest();
_addNextDayTest();
_addNoneOfTest();
_addNotBetween$byteTest();
_addNotBetween$charTest();
_addNotBetween$doubleTest();
_addNotBetween$ExpressionTest();
_addNotBetween$floatTest();
_addNotBetween$intTest();
_addNotBetween$longTest();
_addNotBetween$ObjectTest();
_addNotBetween$shortTest();
_addNotEmptyTest();
_addNotEqual$booleanTest();
_addNotEqual$byteTest();
_addNotEqual$charTest();
_addNotEqual$doubleTest();
_addNotEqual$floatTest();
_addNotEqual$longTest();
_addNotEqual$shortTest();
_addNotIn$booleanTest();
_addNotIn$byteTest();
_addNotIn$charTest();
_addNotIn$doubleTest();
_addNotIn$floatTest();
_addNotIn$intTest();
_addNotIn$longTest();
_addNotIn$shortTest();
_addOr$DifferentBuildersTest();
_addRightTrim$StringTest();
_addRightTrimTest();
// broken _addRoundDateTest();
_addPostfixSQLTest();
_addPrefixSQLTest();
_addSizeTest();
_addStandardDeviationTest();
// broken _addToCharacterTest();
_addToUpperCasedWordsTest();
_addValue$booleanTest();
_addValue$byteTest();
_addValue$charTest();
_addValue$doubleTest();
_addValue$floatTest();
_addValue$longTest();
_addValue$shortTest();
_addVarianceTest();
addTest(new UnitTestCase("AliasForTableTest"));
addTest(new UnitTestCase("Create$Expression$Object$ExpressionOperatorTest"));
addTest(new UnitTestCase("Create$Expression$Vector$ExpressionOperatorTest"));
addTest(new UnitTestCase("DoesConformTest"));
addTest(new UnitTestCase("GetField$DatabaseFieldTest"));
addTest(new UnitTestCase("GetField$StringTest"));
addTest(new UnitTestCase("GetFieldsTest"));
addTest(new UnitTestCase("GetNameTest"));
addTest(new UnitTestCase("GetOperatorTest"));
addTest(new UnitTestCase("GetTable$DatabaseTableTest"));
addTest(new UnitTestCase("GetTable$StringTest"));
addTest(new UnitTestCase("Twist$null$ExpressionTest"));
// Should be declared abstract: addTest(new UnitTestCase("TwisedForBaseAndContextTest"));
addTest(new UnitTestCase("ValueFromObjectTest"));
}
@Override
protected PopulationManager getManager() {
return manager;
}
@Override
protected void setManager(PopulationManager theManager) {
manager = theManager;
}
}