/******************************************************************************* | |
* Copyright (c) 1998, 2013 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 v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* 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(new Integer(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"), new Integer(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(); | |
} | |
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")); | |
} | |
protected PopulationManager getManager() { | |
return manager; | |
} | |
protected void setManager(PopulationManager theManager) { | |
manager = theManager; | |
} | |
} |