|
25 | 25 | /** |
26 | 26 | * Tests built around examples of EQL found in the EclipseLink's docs at |
27 | 27 | * https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL<br/> |
| 28 | + * With the exception of {@literal MOD} which is defined as {@literal MOD(arithmetic_expression , arithmetic_expression)}, |
| 29 | + * but shown in tests as {@literal MOD(arithmetic_expression ? arithmetic_expression)}. |
28 | 30 | * <br/> |
29 | 31 | * IMPORTANT: Purely verifies the parser without any transformations. |
30 | 32 | * |
31 | 33 | * @author Greg Turnquist |
| 34 | + * @author Christoph Strobl |
32 | 35 | */ |
33 | 36 | class EqlComplianceTests { |
34 | 37 |
|
@@ -214,7 +217,7 @@ void functionsInSelect() { |
214 | 217 | assertQuery("SELECT e.name, CURRENT_TIMESTAMP FROM Employee e"); |
215 | 218 | assertQuery("SELECT LENGTH(e.lastName) FROM Employee e"); |
216 | 219 | assertQuery("SELECT LOWER(e.lastName) FROM Employee e"); |
217 | | - assertQuery("SELECT MOD(e.hoursWorked / 8) FROM Employee e"); |
| 220 | + assertQuery("SELECT MOD(e.hoursWorked, 8) FROM Employee e"); |
218 | 221 | assertQuery("SELECT NULLIF(e.salary, 0) FROM Employee e"); |
219 | 222 | assertQuery("SELECT SQRT(o.RESULT) FROM Output o"); |
220 | 223 | assertQuery("SELECT SUBSTRING(e.lastName, 0, 2) FROM Employee e"); |
@@ -243,7 +246,7 @@ void functionsInWhere() { |
243 | 246 | assertQuery("SELECT e FROM Employee e WHERE CURRENT_TIME > CURRENT_TIMESTAMP"); |
244 | 247 | assertQuery("SELECT e FROM Employee e WHERE LENGTH(e.lastName) > 0"); |
245 | 248 | assertQuery("SELECT e FROM Employee e WHERE LOWER(e.lastName) = 'bilbo'"); |
246 | | - assertQuery("SELECT e FROM Employee e WHERE MOD(e.hoursWorked / 8) > 0"); |
| 249 | + assertQuery("SELECT e FROM Employee e WHERE MOD(e.hoursWorked, 8) > 0"); |
247 | 250 | assertQuery("SELECT e FROM Employee e WHERE NULLIF(e.salary, 0) is null"); |
248 | 251 | assertQuery("SELECT e FROM Employee e WHERE SQRT(o.RESULT) > 0.0"); |
249 | 252 | assertQuery("SELECT e FROM Employee e WHERE SUBSTRING(e.lastName, 0, 2) = 'Bilbo'"); |
@@ -272,7 +275,7 @@ void functionsInOrderBy() { |
272 | 275 | assertQuery("SELECT e FROM Employee e ORDER BY CURRENT_TIMESTAMP"); |
273 | 276 | assertQuery("SELECT e FROM Employee e ORDER BY LENGTH(e.lastName)"); |
274 | 277 | assertQuery("SELECT e FROM Employee e ORDER BY LOWER(e.lastName)"); |
275 | | - assertQuery("SELECT e FROM Employee e ORDER BY MOD(e.hoursWorked / 8)"); |
| 278 | + assertQuery("SELECT e FROM Employee e ORDER BY MOD(e.hoursWorked, 8)"); |
276 | 279 | assertQuery("SELECT e FROM Employee e ORDER BY NULLIF(e.salary, 0)"); |
277 | 280 | assertQuery("SELECT e FROM Employee e ORDER BY SQRT(o.RESULT)"); |
278 | 281 | assertQuery("SELECT e FROM Employee e ORDER BY SUBSTRING(e.lastName, 0, 2)"); |
@@ -301,7 +304,7 @@ void functionsInGroupBy() { |
301 | 304 | assertQuery("SELECT e FROM Employee e GROUP BY CURRENT_TIMESTAMP"); |
302 | 305 | assertQuery("SELECT e FROM Employee e GROUP BY LENGTH(e.lastName)"); |
303 | 306 | assertQuery("SELECT e FROM Employee e GROUP BY LOWER(e.lastName)"); |
304 | | - assertQuery("SELECT e FROM Employee e GROUP BY MOD(e.hoursWorked / 8)"); |
| 307 | + assertQuery("SELECT e FROM Employee e GROUP BY MOD(e.hoursWorked, 8)"); |
305 | 308 | assertQuery("SELECT e FROM Employee e GROUP BY NULLIF(e.salary, 0)"); |
306 | 309 | assertQuery("SELECT e FROM Employee e GROUP BY SQRT(o.RESULT)"); |
307 | 310 | assertQuery("SELECT e FROM Employee e GROUP BY SUBSTRING(e.lastName, 0, 2)"); |
@@ -329,7 +332,7 @@ void functionsInHaving() { |
329 | 332 | assertQuery("SELECT e FROM Employee e GROUP BY e.salary HAVING CURRENT_TIME > CURRENT_TIMESTAMP"); |
330 | 333 | assertQuery("SELECT e FROM Employee e GROUP BY e.salary HAVING LENGTH(e.lastName) > 0"); |
331 | 334 | assertQuery("SELECT e FROM Employee e GROUP BY e.salary HAVING LOWER(e.lastName) = 'bilbo'"); |
332 | | - assertQuery("SELECT e FROM Employee e GROUP BY e.salary HAVING MOD(e.hoursWorked / 8) > 0"); |
| 335 | + assertQuery("SELECT e FROM Employee e GROUP BY e.salary HAVING MOD(e.hoursWorked, 8) > 0"); |
333 | 336 | assertQuery("SELECT e FROM Employee e GROUP BY e.salary HAVING NULLIF(e.salary, 0) is null"); |
334 | 337 | assertQuery("SELECT e FROM Employee e GROUP BY e.salary HAVING SQRT(o.RESULT) > 0.0"); |
335 | 338 | assertQuery("SELECT e FROM Employee e GROUP BY e.salary HAVING SUBSTRING(e.lastName, 0, 2) = 'Bilbo'"); |
|
0 commit comments