/******************************************************************************* | |
* 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 org.eclipse.persistence.expressions.*; | |
public class DefaultingFunctionsExpressionTest extends ReadAllExpressionTest { | |
/** | |
* ReadAllExpressionTest constructor comment. | |
* @param referenceClass java.lang.Class | |
* @param originalObjectsSize int | |
*/ | |
public DefaultingFunctionsExpressionTest(Class referenceClass, int originalObjectsSize) { | |
super(referenceClass, originalObjectsSize); | |
} | |
/** | |
* Test that when the user uses getFunction(FOO) we will print it as a function | |
* FOO, even though we've never heard of it before. | |
* This is tricky to test, since we can break the test by including function support, | |
* so use a function we do support, but invoke it by database selector (LOWER)rather than | |
* Java selector (toLowerCase) | |
*/ | |
public void setup() { | |
// This is slightly tricky. We use the same function as toLowerCase, | |
// but get the platform's name for it. | |
ExpressionOperator op = getSession().getLogin().getPlatform().getOperator(ExpressionOperator.ToLowerCase); | |
String lowerCaseFunctionName; | |
if (op == null) { | |
lowerCaseFunctionName = "LOWER"; | |
} else { | |
String withBracket = op.getDatabaseStrings()[0]; | |
lowerCaseFunctionName = withBracket.substring(0, withBracket.length() - 1); | |
} | |
ExpressionBuilder emp = new ExpressionBuilder(); | |
expression = emp.get("firstName").getFunction(lowerCaseFunctionName).equal("sarah"); | |
getQuery(true).setSelectionCriteria(expression); | |
super.setup(); | |
} | |
} |