/******************************************************************************* * 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 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: * 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 TestAggregates extends QueryTest { @Test public void testAvgHandling1() { /* * 00 null, /* 01 null, /* 02 "line 1: Path 'c.informers' is not a CMP path\n" + * "SELECT avg(distinct c.informers) FROM Cop c where avg(distinct c.partner) > 3.5 and exists(select avg(c1.partner) from Cop c1)\n" * + " ^\n" + "line 1: Path 'c.informers' is not of numeric type (Informer)\n" + * "SELECT avg(distinct c.informers) FROM Cop c where avg(distinct c.partner) > 3.5 and exists(select avg(c1.partner) from Cop c1)\n" * + " ^\n" + "line 1: Path 'c.partner' is not a CMP path\n" + * "SELECT avg(distinct c.informers) FROM Cop c where avg(distinct c.partner) > 3.5 and exists(select avg(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c.partner' is not of numeric type (Cop)\n" + * "SELECT avg(distinct c.informers) FROM Cop c where avg(distinct c.partner) > 3.5 and exists(select avg(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c1.partner' is not a CMP path\n" + * "SELECT avg(distinct c.informers) FROM Cop c where avg(distinct c.partner) > 3.5 and exists(select avg(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c1.partner' is not of numeric type (Cop)\n" + * "SELECT avg(distinct c.informers) FROM Cop c where avg(distinct c.partner) > 3.5 and exists(select avg(c1.partner) from Cop c1)\n" * + " ^\n", */ // TODO parser/mapper have to be fixed /* 0 assertValidQuery("SELECT avg(c.id) FROM Cop c where avg(c.id) > 3.5 and exists(select avg(c1.id) from Cop c1)"); */ // TODO parser/mapper have to be fixed /* * 1assertValidQuery( * "SELECT avg(distinct c.id) FROM Cop c where avg(distinct c.id) > 3.5 and exists(select avg(distinct c1.id) from Cop c1)" * ); */ assertValidQueryExecution("SELECT e.firstname, avg(e.salary) FROM Employee e GROUP BY e.firstname HAVING avg(e.salary) > 2000"); } @Test public void testAvgHandling2() { /* 2 */assertInvalidQuery("SELECT avg(distinct c.informers) FROM Cop c where avg(distinct c.partner) > 3.5 and exists(select avg(c1.partner) from Cop c1)"); } @Test public void testMaxHandling() { /* * 03 null, /* 04 null, /* 05 "line 1: Path 'c.informers' is not a CMP path\n" + * "SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)\n" * + " ^\n" + "line 1: No order defined on type (Informer) of path 'c.informers'\n" + * "SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)\n" * + " ^\n" + "line 1: Path 'c.partner' is not a CMP path\n" + * "SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: No order defined on type (Cop) of path 'c.partner'\n" + * "SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Comparison '>' not defined for entity beans\n" + * "SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Comparison of incompatible types: (Cop) '>' (java.math.BigDecimal)\n" + * "SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c1.partner' is not a CMP path\n" + * "SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: No order defined on type (Cop) of path 'c1.partner'\n" + * "SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)\n" * + " ^\n", */ // TODO parser/mapper have to be fixed /* 3 assertValidQuery("SELECT max(c.id) FROM Cop c where max(c.id) > 3.5 and exists(select max(c1.id) from Cop c1)"); */ // TODO parser/mapper have to be fixed /* * 4assertValidQuery( * "SELECT max(distinct c.id) FROM Cop c where max(distinct c.id) > 3.5 and exists(select max(distinct c1.id) from Cop c1)" * ); */ /* 5 */assertInvalidQuery("SELECT max(distinct c.informers) FROM Cop c where max(distinct c.partner) > 3.5 and exists(select max(c1.partner) from Cop c1)"); } @Test public void testMinHandling() { /* * 06 null, /* 07 null, /* 08 "line 1: Path 'c.informers' is not a CMP path\n" + * "SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)\n" * + " ^\n" + "line 1: No order defined on type (Informer) of path 'c.informers'\n" + * "SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)\n" * + " ^\n" + "line 1: Path 'c.partner' is not a CMP path\n" + * "SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: No order defined on type (Cop) of path 'c.partner'\n" + * "SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Comparison '>' not defined for entity beans\n" + * "SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Comparison of incompatible types: (Cop) '>' (java.math.BigDecimal)\n" + * "SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c1.partner' is not a CMP path\n" + * "SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: No order defined on type (Cop) of path 'c1.partner'\n" + * "SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)\n" * + " ^\n", */ // TODO parser/mapper have to be fixed /* 6 assertValidQuery("SELECT min(c.id) FROM Cop c where min(c.id) > 3.5 and exists(select min(c1.id) from Cop c1)"); */ // TODO parser/mapper have to be fixed /* * 7assertValidQuery( * "SELECT min(distinct c.id) FROM Cop c where min(distinct c.id) > 3.5 and exists(select min(distinct c1.id) from Cop c1)" * ); */ /* 8 */assertInvalidQuery("SELECT min(distinct c.informers) FROM Cop c where min(distinct c.partner) > 3.5 and exists(select min(c1.partner) from Cop c1)"); } @Test public void testSumHandling() { /* * 09 null, /* 10 null, /* 11 "line 1: Path 'c.informers' is not a CMP path\n" + * "SELECT sum(distinct c.informers) FROM Cop c where sum(distinct c.partner) > 3.5 and exists(select sum(c1.partner) from Cop c1)\n" * + " ^\n" + "line 1: Path 'c.informers' is not of numeric type (Informer)\n" + * "SELECT sum(distinct c.informers) FROM Cop c where sum(distinct c.partner) > 3.5 and exists(select sum(c1.partner) from Cop c1)\n" * + " ^\n" + "line 1: Path 'c.partner' is not a CMP path\n" + * "SELECT sum(distinct c.informers) FROM Cop c where sum(distinct c.partner) > 3.5 and exists(select sum(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c.partner' is not of numeric type (Cop)\n" + * "SELECT sum(distinct c.informers) FROM Cop c where sum(distinct c.partner) > 3.5 and exists(select sum(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c1.partner' is not a CMP path\n" + * "SELECT sum(distinct c.informers) FROM Cop c where sum(distinct c.partner) > 3.5 and exists(select sum(c1.partner) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c1.partner' is not of numeric type (Cop)\n" + * "SELECT sum(distinct c.informers) FROM Cop c where sum(distinct c.partner) > 3.5 and exists(select sum(c1.partner) from Cop c1)\n" * + " ^\n", */ // TODO parser/mapper have to be fixed /* 9 assertValidQuery("SELECT sum(c.id) FROM Cop c where sum(c.id) > 3.5 and exists(select sum(c1.id) from Cop c1)"); */ /* * 10assertValidQuery( * "SELECT sum(distinct c.id) FROM Cop c where sum(distinct c.id) > 3.5 and exists(select sum(distinct c1.id) from Cop c1)" * ); */ /* * 11assertInvalidQuery( * "SELECT sum(distinct c.informers) FROM Cop c where sum(distinct c.partner) > 3.5 and exists(select sum(c1.partner) from Cop c1)" * ); */ } @Test @ToBeInvestigated public void testCountHandling() { /* * 12 null, /* 13 null, /* 14 "line 1: Path 'c.informers' is neither a CMP path nor a single valued CMR path\n" + * "SELECT count(distinct c.informers) FROM Cop c where count(distinct c.informers) > 3.5 and exists(select count(c1.informers) from Cop c1)\n" * + " ^\n" + "line 1: Path 'c.informers' is neither a CMP path nor a single valued CMR path\n" + * "SELECT count(distinct c.informers) FROM Cop c where count(distinct c.informers) > 3.5 and exists(select count(c1.informers) from Cop c1)\n" * + " ^\n" + * "line 1: Path 'c1.informers' is neither a CMP path nor a single valued CMR path\n" + * "SELECT count(distinct c.informers) FROM Cop c where count(distinct c.informers) > 3.5 and exists(select count(c1.informers) from Cop c1)\n" * + * " ^\n", * /* 15 null, */ // TODO parser/mapper handling have to be fixed /* 12 */assertValidQuery("SELECT count(c.id) FROM Cop c where count(c.id) > 3.5 and exists(select count(c1.id) from Cop c1)"); /**/ /* * 13assertValidQuery( * "SELECT count(distinct c.partner) FROM Cop c where count(distinct c.partner) > 3.5 and exists(select count(distinct c1.partner) from Cop c1)" * ); */ /* * 14assertInvalidQuery( * "SELECT count(distinct c.informers) FROM Cop c where count(distinct c.informers) > 3.5 and exists(select count(c1.informers) from Cop c1)" * ); */ /* 15 assertValidQuery("SELECT count(c) FROM Cop c where count(c) > 3.5 and exists(select count(c1) from Cop c1)"); */ } }