| /* |
| * 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)"); |
| } |
| |
| } |