/******************************************************************************* * Copyright (c) 1998, 2015 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.queries; import org.eclipse.persistence.descriptors.ClassDescriptor; import org.eclipse.persistence.queries.*; import org.eclipse.persistence.expressions.*; import org.eclipse.persistence.testing.models.employee.domain.*; import org.eclipse.persistence.testing.framework.ReadObjectTest; /** * Test predefined queries. */ public class PredefinedQueryReadObjectTest extends ReadObjectTest { protected Exception caughtException; public PredefinedQueryReadObjectTest(Object originalObject) { super(originalObject); setName("PredefinedQueryReadObjectTest"); } public void reset() { // do not want to keep named queries getSession().removeQuery("getEmployee"); getSession().getIdentityMapAccessor().initializeAllIdentityMaps(); } protected void setup() { getSession().getIdentityMapAccessor().initializeIdentityMaps(); ExpressionBuilder builder = new ExpressionBuilder(); Expression firstNameExpression = builder.get("firstName").equal(builder.getParameter("firstName")); Expression lastNameExpression = builder.get("lastName").equal(builder.getParameter("lastName")); ReadObjectQuery query = new ReadObjectQuery(); query.setReferenceClass(Employee.class); query.setSelectionCriteria(firstNameExpression.and(lastNameExpression)); query.addArgument("firstName"); query.addArgument("lastName"); ClassDescriptor descriptor; if (getSession() instanceof org.eclipse.persistence.sessions.remote.RemoteSession) { descriptor = org.eclipse.persistence.testing.tests.remote.RemoteModel.getServerSession().getDescriptor(Employee.class); } else { descriptor = getSession().getDescriptor(Employee.class); } getSession().removeQuery("getEmployee"); getSession().addQuery("getEmployee", query); } protected void test() { try { this.objectFromDatabase = getSession().executeQuery("getEmployee", "Bob", "Smith"); } catch (ClassCastException e) { caughtException = e; } } public void verify() { if (caughtException != null) { throw new org.eclipse.persistence.testing.framework.TestErrorException("Testing predefined query. Adding to and removing from session. \n" + "This exception thrown while testing test case\n" + "----- PredefinedQueryReadObjectTest() -----\n"); } } // end of verify() }// end of PredefinedQueryReadObjectTest