blob: a3500e8875dd8e51d32bed7f497215ed591b77dd [file] [log] [blame]
/*******************************************************************************
* 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.jpql;
import java.util.*;
import org.eclipse.persistence.queries.*;
import org.eclipse.persistence.expressions.*;
import org.eclipse.persistence.testing.framework.*;
import org.eclipse.persistence.testing.models.employee.domain.*;
public class SimpleParameterTestChangingParameters extends JPQLParameterTestCase {
Employee first;
Employee second;
Vector firstParameters;
Vector secondParameters;
public void setup() {
// Get the baseline employees for the verify
Vector employees = getSomeEmployees();
first = (Employee)employees.firstElement();
second = (Employee)employees.elementAt(1);
String parameterName = "firstName";
ExpressionBuilder builder = new ExpressionBuilder();
Expression whereClause = builder.get("firstName").equal(builder.getParameter(parameterName));
ReadAllQuery raq = new ReadAllQuery();
raq.setReferenceClass(Employee.class);
raq.setSelectionCriteria(whereClause);
raq.addArgument(parameterName);
firstParameters = new Vector();
firstParameters.add(first.getFirstName());
secondParameters = new Vector();
secondParameters.add(second.getFirstName());
Vector firstEmployees = (Vector)getSession().executeQuery(raq, firstParameters);
Vector secondEmployees = (Vector)getSession().executeQuery(raq, secondParameters);
Vector allEmployees = new Vector();
allEmployees.addAll(firstEmployees);
allEmployees.addAll(secondEmployees);
// Set up the EJBQL using the retrieved employees
String ejbqlString = "SELECT OBJECT(emp) FROM Employee emp WHERE ";
ejbqlString = ejbqlString + "emp.firstName = ?1 ";
setEjbqlString(ejbqlString);
setOriginalOject(allEmployees);
// setArguments(parameters);
Vector myArgumentNames = new Vector();
myArgumentNames.add("1");
//setArgumentsNames(myArgumentNames);
// Finish the setup
super.setup();
}
public void test() {
try {
Vector firstSetOfResults;
Vector secondSetOfResults;
//populateQuery();
getQuery().addArgument("1");
getSession().logMessage("Running EJBQL -> " + getEjbqlString());
firstSetOfResults = (Vector)getSession().executeQuery(getQuery(), firstParameters);
secondSetOfResults = (Vector)getSession().executeQuery(getQuery(), secondParameters);
Vector allResults = new Vector();
allResults.addAll(firstSetOfResults);
allResults.addAll(secondSetOfResults);
setReturnedObjects(allResults);
} catch (Exception e) {
throw new TestErrorException(e.getMessage());
}
}
}