| /* |
| * 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.workbenchintegration.QueryOptions; |
| |
| import org.eclipse.persistence.queries.Cursor; |
| import org.eclipse.persistence.sessions.UnitOfWork; |
| import org.eclipse.persistence.testing.framework.TestCase; |
| import org.eclipse.persistence.testing.framework.TestSuite; |
| import org.eclipse.persistence.testing.models.employee.domain.Employee; |
| import org.eclipse.persistence.testing.models.employee.domain.Project; |
| |
| |
| /** |
| * Test that deployment XML and deployment class work with named queries. |
| */ |
| public class QueryOptionTestSuite extends TestSuite { |
| public QueryOptionTestSuite() { |
| setDescription("This suite tests all of the functionality of the query options."); |
| } |
| |
| @Override |
| public void addTests() { |
| addTest(new RefreshIdentityMapResultsTest()); |
| addTest(new QueryTimeOutTest()); |
| addTest(new MaxRowsTest()); |
| addTest(new FirstResultTest()); |
| addTest(new MemoryQueryReturnConfirmedTest()); |
| addTest(new MemoryQueryReturnNotConfirmedTest()); |
| addTest(new MemoryQueryThrowExceptionTest()); |
| addTest(new MemoryQueryTriggerIndirectionTest()); |
| addTest(new DoNotUseDistinctTest()); |
| addTest(new UseDistinctTest()); |
| addTest(new ShouldPrepareTest()); |
| addTest(new QueryManagerTimeoutTest()); |
| addTest(buildReadOnlyTest()); |
| addTest(buildJoinSubclassesTest()); |
| } |
| |
| /** |
| * Test the read-only query option. |
| */ |
| public TestCase buildReadOnlyTest() { |
| TestCase test = new TestCase() { |
| @Override |
| public void test() { |
| UnitOfWork uow = getSession().acquireUnitOfWork(); |
| Employee employee = (Employee)uow.executeQuery("readOnlyQuery", Employee.class); |
| if (employee != getSession().readObject(employee)) { |
| throwError("Read-only option not used, employee registered in the unit of work."); |
| } |
| } |
| }; |
| test.setName("ReadOnlyTest"); |
| test.setDescription("Test the read-only query option in named queries."); |
| return test; |
| } |
| |
| /** |
| * Test the join-subclasses query option. |
| */ |
| public TestCase buildJoinSubclassesTest() { |
| TestCase test = new TestCase() { |
| @Override |
| public void test() { |
| if (getSession().getPlatform().isSymfoware()) { |
| throwWarning("Test joinSubclassesQuery skipped on this platform, " |
| + "Symfoware supports scrollable cursors, but not in the way expected by this test."); |
| } |
| UnitOfWork uow = getSession().acquireUnitOfWork(); |
| Cursor cursor = (Cursor)uow.executeQuery("joinSubclassesQuery", Project.class); |
| cursor.close(); |
| } |
| }; |
| test.setName("JoinSubclassesTest"); |
| test.setDescription("Test the read-only query option in named queries."); |
| return test; |
| } |
| } |