blob: cb92e21563f92d44a497bc3ebd0425a061328b8b [file] [log] [blame]
/*
* Copyright (c) 2005, 2020 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2015 SAP. 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:
// SAP - initial API and implementation
package org.eclipse.persistence.testing.tests.wdf.jpa1.query;
import org.eclipse.persistence.testing.framework.wdf.ToBeInvestigated;
import org.junit.Test;
public class TestFromClauses extends QueryTest {
/*
* JPA 1.0 specification, 4.4.2: An identification variable must not be a reserved identifier or have the same name as any
* entity in the same persistence unit: Identification variables are case insensitive.
*/
@Test
public void testSimpleFrom() {
/* 0 */assertValidQuery("SELECT c FROM City c");
/* 1 */assertValidQuery("SELECT c FROM City as C");
/* 2 */assertInvalidQuery("SELECT c FROM NoExist as c");
/* 3 */assertValidQuery("SELECT C FROM City as c");
/* 4 assertInvalidQuery("SELECT city FROM City city"); */
/* 6 */assertInvalidQuery("SELECT c FROM City c, Person C");
assertValidQuery("SELECT bfa.enumOrdinal FROM BasicTypesFieldAccess bfa WHERE bfa.enumOrdinal = org.eclipse.persistence.testing.models.wdf.jpa1.types.UserDefinedEnum.EMIL");
}
@Test
@ToBeInvestigated
public void testSimpleFrom5() {
/* 5 */assertInvalidQuery("SELECT city FROM City City");
}
@Test
public void testJoinFrom() {
/* 7 */assertValidQuery("SELECT c FROM City c join c.cops as c1 where c1.id = 3");
/* 8 */assertValidQuery("SELECT c FROM City c join c.cops c1 join c1.partner c2 where c2.id = 3");
/* 11 */assertValidQuery("SELECT c FROM City c join fetch c.cops, Informer i inner join fetch i.informingCops");
/* 12 */assertValidQuery("SELECT c FROM City c join c.cops c1 inner join c1.partner as c2 left join c2.partner c3 left outer join c3.informers c4 left outer join fetch c4.informingCops");
/* 13 */assertValidQuery("select c from City as c join c.cops c1, in (c1.partner.attachedCriminals) crim where crim.attachedCop = c1");
/* 14 */assertInvalidQuery("select c from City as c join c.cops c1, in (c1.partner) crim where crim.attachedCop = c1");
}
@Test
@ToBeInvestigated
public void testJoinFrom9() {
/* 9 */assertInvalidQuery("SELECT c FROM Cop c join c.partner.attachedCriminals c1 where c1.id = 3");
}
@Test
@ToBeInvestigated
public void testJoinFrom10() {
/* 10 */assertInvalidQuery("SELECT c FROM City c join c.type c1");
}
@Test
@ToBeInvestigated
public void testExistsSubquery15() {
/* 15 */assertValidQuery("select c from City as c where exists (select c from City c)");
}
@Test
@ToBeInvestigated
public void testExistsSubquery17() {
/* 17 */assertValidQuery("select c from City as c where exists (select c1 from City c1 where exists (select c1 from City c1))");
}
@Test
@ToBeInvestigated
public void testExistsSubquery18() {
/* 18 */assertValidQuery("select c from City as c where exists (select c1 from City c1 where exists (select c from City c))");
}
}