|
| 1 | +/*- |
| 2 | + * #%L |
| 3 | + * JSQLParser library |
| 4 | + * %% |
| 5 | + * Copyright (C) 2004 - 2025 JSQLParser |
| 6 | + * %% |
| 7 | + * Dual licensed under GNU LGPL 2.1 or Apache License 2.0 |
| 8 | + * #L% |
| 9 | + */ |
1 | 10 | package net.sf.jsqlparser.statement.select; |
2 | 11 |
|
3 | 12 | import net.sf.jsqlparser.expression.Expression; |
| 13 | +import net.sf.jsqlparser.expression.ExpressionVisitor; |
4 | 14 | import org.junit.jupiter.api.Test; |
5 | 15 | import org.junit.jupiter.api.extension.ExtendWith; |
6 | 16 | import org.mockito.Mock; |
|
10 | 20 |
|
11 | 21 | import static org.assertj.core.api.Assertions.assertThat; |
12 | 22 | import static org.mockito.ArgumentMatchers.any; |
| 23 | +import static org.mockito.Mockito.verify; |
| 24 | +import static org.mockito.Mockito.verifyNoInteractions; |
13 | 25 | import static org.mockito.Mockito.when; |
14 | 26 |
|
15 | 27 | @ExtendWith(MockitoExtension.class) |
@@ -93,4 +105,24 @@ void toStringTestWithNoParameters() { |
93 | 105 | assertThat(withFunctionDeclaration.toString()) |
94 | 106 | .isEqualTo("FUNCTION func1() RETURNS integer RETURN 1 + 1"); |
95 | 107 | } |
| 108 | + |
| 109 | + @Test |
| 110 | + void expressionVisitorIsNotCalledWhenNoReturnExpressionDeclared(@Mock ExpressionVisitor<Void> expressionVisitor) { |
| 111 | + withFunctionDeclaration = new WithFunctionDeclaration(); |
| 112 | + |
| 113 | + withFunctionDeclaration.accept(expressionVisitor, "RANDOM_CONTEXT"); |
| 114 | + |
| 115 | + verifyNoInteractions(expressionVisitor); |
| 116 | + } |
| 117 | + |
| 118 | + @Test |
| 119 | + void expressionVisitorCalledWhenReturnExpressionDeclared(@Mock ExpressionVisitor<Void> expressionVisitor) { |
| 120 | + String context = "RANDOM_CONTEXT"; |
| 121 | + withFunctionDeclaration = new WithFunctionDeclaration() |
| 122 | + .withReturnExpression(expression); |
| 123 | + |
| 124 | + withFunctionDeclaration.accept(expressionVisitor, context); |
| 125 | + |
| 126 | + verify(expression).accept(expressionVisitor, context); |
| 127 | + } |
96 | 128 | } |
0 commit comments