blob: d7e82905f6e717980a1f6c58d4621a3cedd2d52b [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;
@SuppressWarnings("nls")
public class TestBuiltInFunctionExpressions extends QueryTest {
@Test
public void testConcatHandling0() {
/* 0 */assertValidQuery("SELECT c FROM City c where 'a' = concat('a', 'a')");
}
@Test
public void testConcatHandling1() {
/* 1 */assertValidQuery("SELECT c FROM City c where 'a' = concat(concat('a', 'a'), concat('a', 'a'))");
}
@Test
public void testConcatHandling2() {
/* 2 */assertValidQuery("SELECT p FROM Person p where 'a' = concat(p.string, p.string)");
}
@Test
public void testConcatHandling3() {
/* 3 */assertValidQuery("SELECT p FROM Person p where 'a' = concat(5, 5)");
}
@Test
public void testConcatHandling4() {
/* 4 */assertValidQuery("SELECT p FROM Person p where 'a' = concat(?1, ?1)");
}
@ToBeInvestigated
@Test
public void testConcatHandling5() {
/* 5 */assertValidQuery("SELECT p FROM Person p where 'a' = concat(max(p.string), min(p.string))");
}
@Test
public void testConcatHandling6() {
/* 6 */assertValidQuery("SELECT p FROM Person p where 'a' = concat((select max(p1.string) from Person p1), (select max(p1.string) from Person p1))");
}
@Test
public void testConcatHandling7() {
/* 7 */assertInvalidQuery("SELECT p FROM Person p where 'a' = concat(p, 4 * 5)");
}
@Test
public void testSubstringHandling() {
/* -- */assertValidQuery("UPDATE Person p SET p.string = CONCAT('288', SUBSTRING(p.string, LOCATE(p.string, '-'), 4))");
}
@Test
public void testSubstringHandling8() {
/* 8 */assertValidQuery("SELECT p FROM Person p where 'a' = substring('a', 4, 5)");
}
@Test
public void testSubstringHandling9() {
/* 9 */assertValidQuery("SELECT p FROM Person p where 'a' = substring(p.string, p.integer, p.integer)");
}
@Test
public void testSubstringHandling10() {
/* 10 */assertValidQuery("SELECT p FROM Person p where 'a' = substring(p.string, 2 + 3, 3 * 2)");
}
@Test
public void testSubstringHandling11() {
/* 11 */assertValidQuery("SELECT p FROM Person p where 'a' = substring(?1, ?2, ?2)");
}
@Test
public void testSubstringHandling12() {
/* 12 */assertValidQuery("SELECT p FROM Person p where 'a' = substring(substring('a', 2, 3), abs(2), abs(-2))");
}
@ToBeInvestigated
@Test
public void testSubstringHandling13() {
/* 13 */assertValidQuery("SELECT p FROM Person p where 'a' = substring(max(p.string), min(p.integer), max(p.integer))");
}
@Test
public void testSubstringHandling14() {
/* 14 */assertValidQuery("SELECT p FROM Person p where 'a' = substring((select max(p1.string) from Person p1), (select max(p1.integer) from Person p1), (select max(p1.integer) from Person p1))");
}
@Test
public void testTrimHandling15() {
/* 15 */assertValidQuery("SELECT p FROM Person p where 'a' = trim('a')");
}
@Test
public void testTrimHandling16() {
/* 16 */assertInvalidQuery("SELECT p FROM Person p where 'a' = trim(p)");
}
@Test
public void testTrimHandling17() {
/* 17 */assertValidQuery("SELECT p FROM Person p where 'a' = trim(p.string)");
}
@Test
public void testTrimHandling18() {
/* 18 */assertValidQuery("SELECT p FROM Person p where 'a' = trim(:one)");
}
@Test
public void testTrimHandling19() {
/* 19 */assertValidQuery("SELECT p FROM Person p where 'a' = trim(trim('a'))");
}
@ToBeInvestigated
@Test
public void testTrimHandling20() {
/* 20 */assertValidQuery("SELECT p FROM Person p where 'a' = trim(max(p.string))");
}
@Test
public void testTrimHandling21() {
/* 21 */assertValidQuery("SELECT p FROM Person p where 'a' = trim((select max(p1.string) from Person p1))");
}
@Test
public void testTrimHandling22() {
/* 22 */assertInvalidQuery("SELECT p FROM Person p where 'a' = trim(1+1)");
}
@Test
public void testTrimHandling28() {
/* 28 */assertValidQuery("SELECT p FROM Person p where trim(trailing from 'a') = 'a'");
}
@Test
public void testTrimHandling29() {
/* 29 */assertValidQuery("SELECT p FROM Person p where trim(leading from 'a') = 'a'");
}
@Test
public void testTrimHandling30() {
/* 30 */assertInvalidQuery("SELECT p FROM Person p where 'a' = trim(1 from 'a')");
}
@ToBeInvestigated
@Test
public void testTrimHandling31() {
/* 31 */assertInvalidQuery("SELECT p FROM Person p where 'a' = trim('12' from 'a')");
}
@Test
public void testTrimWithTrimCharacter23() {
/* 23 */assertValidQuery("SELECT p FROM Person p where 'a' = trim('a' from 'a')");
}
@Test
public void testTrimWithTrimCharacter24() {
/* 24 */assertValidQuery("SELECT p FROM Person p where trim(both 'a' from 'a') = 'a'");
}
@Test
public void testTrimWithTrimCharacter25() {
/* 25 */assertValidQuery("SELECT p FROM Person p where trim(trailing 'a' from 'a') = 'a'");
}
@Test
public void testTrimWithTrimCharacter26() {
/* 26 */assertValidQuery("SELECT p FROM Person p where trim(leading 'a' from 'a') = 'a'");
}
@Test
public void testTrimWithTrimCharacter27() {
/* 27 */assertValidQuery("SELECT p FROM Person p where trim(both from 'a') = 'a'");
}
@Test
public void testTrimWithTrimCharacter33() {
/* 33 */assertValidQuery("SELECT p FROM Person p where 'a' = trim(:one from 'a')");
/* 34 */assertValidQuery("SELECT p FROM Person p where 'a' = trim(:one from 'a')");
}
@Test
public void testTrimWithTrimCharacter34() {
/* 34 */assertValidQuery("SELECT p FROM Person p where 'a' = trim(:one from 'a')");
}
@Test
public void testUpperHandling35() {
/* 35 */assertValidQuery("SELECT p FROM Person p where upper('a') = lower('a')");
}
@Test
public void testUpperHandling36() {
/* 36 */assertInvalidQuery("SELECT p FROM Person p where upper(p) = lower(p)");
}
@Test
public void testUpperHandling37() {
/* 37 */assertValidQuery("SELECT p FROM Person p where upper(p.string) = lower(p.string)");
}
@Test
public void testUpperHandling38() {
/* 38 */assertValidQuery("SELECT p FROM Person p where upper(:one) = lower(:one)");
}
@Test
public void testUpperHandling39() {
/* 39 */assertValidQuery("SELECT p FROM Person p where upper(trim('a')) = lower(trim('a'))");
}
@ToBeInvestigated
@Test
public void testUpperHandling40() {
/* 40 */assertValidQuery("SELECT p FROM Person p where upper(min(p.string)) = lower(max(p.string))");
}
@Test
public void testUpperHandling41() {
/* 41 */assertValidQuery("SELECT p FROM Person p where upper((select max(p1.string) from Person p1)) = lower((select max(p1.string) from Person p1))");
}
@Test
public void testUpperHandling42() {
/* 42 */assertValidQuery("SELECT p FROM Person p where upper(2*2) = lower(1+1)");
}
@Test
public void testLengthHandling43() {
/* 43 */assertValidQuery("SELECT p FROM Person p where length('a') = 666");
}
@Test
public void testLengthHandling44() {
/* 44 */assertInvalidQuery("SELECT p FROM Person p where length(p) = 666");
}
@Test
public void testLengthHandling45() {
/* 45 */assertValidQuery("SELECT p FROM Person p where length(p.string) = 666");
}
@Test
public void testLengthHandling46() {
/* 46 */assertValidQuery("SELECT p FROM Person p where length(:one) = 666");
}
@Test
public void testLengthHandling47() {
/* 47 */assertValidQuery("SELECT p FROM Person p where length(trim('a')) = 666");
}
@ToBeInvestigated
@Test
public void testLengthHandling48() {
/* 48 */assertValidQuery("SELECT p FROM Person p where length(min(p.string)) = 666");
}
@Test
public void testLengthHandling49() {
/* 49 */assertValidQuery("SELECT p FROM Person p where length((select max(p1.string) from Person p1)) = 666");
}
@Test
public void testLengthHandling50() {
/* 50 */assertValidQuery("SELECT p FROM Person p where length(2*2) = 666");
}
@Test
public void testLocateHandling51() {
/* 51 */assertValidQuery("SELECT p FROM Person p where 666 = locate('a', 'b', 5)");
}
@Test
public void testLocateHandling52() {
/* 52 */assertValidQuery("SELECT p FROM Person p where 666 = locate(p.string, p.string, p.integer)");
}
@Test
public void testLocateHandling53() {
/* 53 */assertValidQuery("SELECT p FROM Person p where 666 = locate(p.string, p.string, 3 * 2)");
}
@Test
public void testLocateHandling54() {
/* 54 */assertValidQuery("SELECT p FROM Person p where 666 = locate(?1, ?1, ?2)");
}
@Test
public void testLocateHandling55() {
/* 55 */assertValidQuery("SELECT p FROM Person p where 666 = locate(substring('a', 2, 3), upper('abs(2)'), abs(-2))");
}
@ToBeInvestigated
@Test
public void testLocateHandling56() {
/* 56 */assertValidQuery("SELECT p FROM Person p where 666 = locate(max(p.string), min(p.string), max(p.integer))");
}
@Test
public void testLocateHandling57() {
/* 57 */assertValidQuery("SELECT p FROM Person p where 666 = locate((select max(p1.string) from Person p1), (select max(p1.string) from Person p1), (select max(p1.integer) from Person p1))");
}
@Test
public void testLocateHandling58() {
/* 58 */assertValidQuery("SELECT p FROM Person p where 666 = locate('a', 'b')");
}
@Test
public void testAbsHandling59() {
/* 59 */assertValidQuery("SELECT p FROM Person p where 666 = abs(5+10.3)");
}
@Test
public void testAbsHandling60() {
/* 60 */assertValidQuery("SELECT p FROM Person p where 666 = abs(666)");
}
@Test
public void testAbsHandling61() {
/* 61 */assertValidQuery("SELECT p FROM Person p where 666 = abs(p._float)");
}
@Test
public void testAbsHandling62() {
/* 62 */assertValidQuery("SELECT p FROM Person p where 666 = abs(p.integer)");
}
@ToBeInvestigated
@Test
public void testAbsHandling63() {
/* 63 */assertInvalidQuery("SELECT p FROM Person p where 666 = abs(p.string)");
}
@Test
public void testAbsHandling64() {
/* 64 */assertValidQuery("SELECT p FROM Person p where abs((select max(p1.bigInteger) from Person p1)) = 666");
}
@ToBeInvestigated
@Test
public void testAbsHandling65() {
/* 65 */assertValidQuery("SELECT p FROM Person p where abs(max(p._float)) = 666");
}
@Test
public void testAbsHandling66() {
/* 66 */assertValidQuery("SELECT p FROM Person p where abs(abs(p._float)) = 666");
}
@Test
public void testAbsHandling67() {
/* 67 */assertValidQuery("SELECT p FROM Person p where 666 = abs(?1)");
}
@ToBeInvestigated
@Test
public void testAbsHandling68() {
/* 68 */assertInvalidQuery("SELECT p FROM Person p where 666 = abs(p)");
}
@Test
public void testSqrtHandling69() {
/* 69 */assertValidQuery("SELECT p FROM Person p where 666 = sqrt(5+10.3)");
}
@Test
public void testSqrtHandling70() {
/* 70 */assertValidQuery("SELECT p FROM Person p where 666 = sqrt(666)");
}
@Test
public void testSqrtHandling71() {
/* 71 */assertValidQuery("SELECT p FROM Person p where 666 = sqrt(p._float)");
}
@Test
public void testSqrtHandling72() {
/* 72 */assertValidQuery("SELECT p FROM Person p where 666 = sqrt(p.integer)");
}
@ToBeInvestigated
@Test
public void testSqrtHandling73() {
/* 73 */assertInvalidQuery("SELECT p FROM Person p where 666 = sqrt(p.string)");
}
@Test
public void testSqrtHandling74() {
/* 74 */assertValidQuery("SELECT p FROM Person p where sqrt((select max(p1.bigInteger) from Person p1)) = 666");
}
@ToBeInvestigated
@Test
public void testSqrtHandling75() {
/* 75 */assertValidQuery("SELECT p FROM Person p where sqrt(max(p._float)) = 666");
}
@Test
public void testSqrtHandling76() {
/* 76 */assertValidQuery("SELECT p FROM Person p where sqrt(sqrt(p._float)) = 666");
}
@Test
public void testSqrtHandling77() {
/* 77 */assertValidQuery("SELECT p FROM Person p where 666 = sqrt(?1)");
}
@Test
public void testSqrtHandling78() {
/* 78 */assertValidQuery("SELECT p FROM Person p where 666 = sqrt(?1)");
}
@Test
public void testModHandling79() {
/* 79 */assertValidQuery("SELECT p FROM Person p where 666 = mod(5+10,5+10)");
}
@Test
public void testModHandling80() {
/* 80 */assertValidQuery("SELECT p FROM Person p where 666 = mod(666, 666)");
}
@Test
public void testModHandling81() {
/* 81 */assertValidQuery("SELECT p FROM Person p where 666 = mod(p._float, p._float)");
}
@Test
public void testModHandling82() {
/* 82 */assertValidQuery("SELECT p FROM Person p where 666 = mod(p.integer, p.integer)");
}
@Test
public void testModHandling83() {
/* 83 */assertValidQuery("SELECT p FROM Person p where 666 = mod(p.string, p.string)");
}
@Test
public void testModHandling84() {
/* 84 */assertValidQuery("SELECT p FROM Person p where mod((select max(p1.bigInteger) from Person p1), (select max(p1.bigInteger) from Person p1)) = 666");
}
@ToBeInvestigated
@Test
public void testModHandling85() {
/* 85 */assertValidQuery("SELECT p FROM Person p where mod(max(p.integer), max(p.integer)) = 666");
}
@Test
public void testModHandling86() {
/* 86 */assertValidQuery("SELECT p FROM Person p where mod(abs(p.integer), abs(p.integer)) = 666");
}
@Test
public void testModHandling87() {
/* 87 */assertValidQuery("SELECT p FROM Person p where 666 = mod(?1, ?1)");
}
@Test
public void testModHandling88() {
/* 88 */assertInvalidQuery("SELECT p FROM Person p where 666 = mod(p, p)");
}
@Test
public void testSizeHandling89() {
/* 89 */assertInvalidQuery("SELECT c FROM Cop c where 666 = size(c.partner)");
}
@Test
public void testSizeHandling90() {
/* 90 */assertValidQuery("SELECT c FROM Cop c where 666 = size(c.attachedCriminals)");
}
@Test
public void testSizeHandling91() {
/* 91 */assertValidQuery("SELECT c FROM Cop c where 666 = size(c.informers)");
}
@Test
public void testSizeHandling92() {
/* 92 */assertInvalidQuery("SELECT c FROM Cop c where 666 = size(c.id)");
}
@Test
public void testSizeHandling93() {
/* 93 */assertInvalidQuery("SELECT c FROM Cop c where 666 = size(c.tesla)");
}
@Test
public void testSizeHandling94() {
/* 94 */assertInvalidQuery("SELECT c FROM Cop c where 666 = size(c.tesla.integer)");
}
}