|
18 | 18 | import static org.assertj.core.api.Assertions.*;
|
19 | 19 | import static org.springframework.data.jpa.repository.query.JpaQueryParsingToken.*;
|
20 | 20 |
|
| 21 | +import java.util.stream.Stream; |
| 22 | + |
21 | 23 | import org.antlr.v4.runtime.CharStreams;
|
22 | 24 | import org.antlr.v4.runtime.CommonTokenStream;
|
23 | 25 | import org.junit.jupiter.api.Disabled;
|
24 | 26 | import org.junit.jupiter.api.Test;
|
25 | 27 | import org.junit.jupiter.params.ParameterizedTest;
|
| 28 | +import org.junit.jupiter.params.provider.Arguments; |
| 29 | +import org.junit.jupiter.params.provider.MethodSource; |
26 | 30 | import org.junit.jupiter.params.provider.ValueSource;
|
27 | 31 |
|
28 | 32 | /**
|
@@ -53,6 +57,10 @@ private static String parseWithoutChanges(String query) {
|
53 | 57 | return render(new EqlQueryRenderer().visit(parsedQuery));
|
54 | 58 | }
|
55 | 59 |
|
| 60 | + static Stream<Arguments> reservedWords() { |
| 61 | + return Stream.of("abs", "exp", "any", "case", "else", "index", "time").map(Arguments::of); |
| 62 | + } |
| 63 | + |
56 | 64 | private void assertQuery(String query) {
|
57 | 65 |
|
58 | 66 | String slimmedDownQuery = reduceWhitespace(query);
|
@@ -995,25 +1003,25 @@ void powerShouldBeLegalInAQuery() {
|
995 | 1003 | }
|
996 | 1004 |
|
997 | 1005 | @ParameterizedTest // GH-3342
|
998 |
| - @ValueSource(strings = { |
999 |
| - "select 1 from User u", |
1000 |
| - "select -1 from User u", |
1001 |
| - "select +1 from User u", |
1002 |
| - "select +1*-100 from User u", |
1003 |
| - "select count(u)*-0.7f from User u", |
| 1006 | + @ValueSource(strings = { "select 1 from User u", "select -1 from User u", "select +1 from User u", |
| 1007 | + "select +1*-100 from User u", "select count(u)*-0.7f from User u", |
1004 | 1008 | "select count(oi) + (-100) as perc from StockOrderItem oi",
|
1005 |
| - "select p from Payment p where length(p.cardNumber) between +16 and -20" |
1006 |
| - }) |
| 1009 | + "select p from Payment p where length(p.cardNumber) between +16 and -20" }) |
1007 | 1010 | void signedLiteralShouldWork(String query) {
|
1008 | 1011 | assertQuery(query);
|
1009 | 1012 | }
|
1010 | 1013 |
|
1011 | 1014 | @ParameterizedTest // GH-3342
|
1012 |
| - @ValueSource(strings = { |
1013 |
| - "select -count(u) from User u", |
1014 |
| - "select +1*(-count(u)) from User u" |
1015 |
| - }) |
| 1015 | + @ValueSource(strings = { "select -count(u) from User u", "select +1*(-count(u)) from User u" }) |
1016 | 1016 | void signedExpressionsShouldWork(String query) {
|
1017 | 1017 | assertQuery(query);
|
1018 | 1018 | }
|
| 1019 | + |
| 1020 | + @ParameterizedTest // GH-3451 |
| 1021 | + @MethodSource("reservedWords") |
| 1022 | + void entityNameWithPackageContainingReservedWord(String reservedWord) { |
| 1023 | + |
| 1024 | + String source = "select new com.company.%s.thing.stuff.ClassName(e.id) from Experience e".formatted(reservedWord); |
| 1025 | + assertQuery(source); |
| 1026 | + } |
1019 | 1027 | }
|
0 commit comments