Skip to content

Commit 2acc260

Browse files
Arshia MalkaniArshia Malkani
authored andcommitted
added tests for features added
1 parent 9b1ac16 commit 2acc260

1 file changed

Lines changed: 27 additions & 1 deletion

File tree

src/test/java/net/sf/jsqlparser/expression/ExpressionVisitorAdapterTest.java

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
import java.util.ArrayList;
2222
import java.util.List;
2323
import net.sf.jsqlparser.JSQLParserException;
24+
import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
2425
import net.sf.jsqlparser.expression.operators.relational.InExpression;
2526
import net.sf.jsqlparser.expression.operators.relational.ItemsList;
2627
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
2728
import net.sf.jsqlparser.schema.Column;
29+
import net.sf.jsqlparser.schema.Table;
2830
import net.sf.jsqlparser.statement.select.PlainSelect;
2931
import net.sf.jsqlparser.statement.select.Select;
3032
import net.sf.jsqlparser.statement.select.SelectVisitorAdapter;
@@ -188,7 +190,31 @@ public void testSubSelectExpressionProblem() throws JSQLParserException {
188190
fail();
189191
}
190192
}
191-
193+
194+
@Test
195+
public void testJoinWithoutFrom() throws JSQLParserException {
196+
Select select = (Select) CCJSqlParserUtil.
197+
parse("SELECT * JOIN dimension(arg1, arg2)");
198+
PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
199+
plainSelect.setFromItem(new Table("myDataSet"));
200+
assertEquals(plainSelect.getJoins().get(0).toString(), "JOIN dimension(arg1, arg2)");
201+
assertEquals(plainSelect.toString(), "SELECT * FROM myDataSet JOIN dimension(arg1, arg2)");
202+
}
203+
204+
205+
@Test
206+
public void testCustomFunction() throws JSQLParserException {
207+
Select select = (Select) CCJSqlParserUtil.
208+
parse("SELECT * FROM myData WHERE regexp_replace(arg1, arg2) AND y > 3");
209+
PlainSelect plainSelect = (PlainSelect) select.getSelectBody();
210+
AndExpression whereAnd = (AndExpression) plainSelect.getWhere();
211+
Function whereFunction = (Function) whereAnd.getLeftExpression();
212+
Select newExpression = (Select) CCJSqlParserUtil.parse("SELECT * WHERE x > 2");
213+
PlainSelect newPlainSelect = (PlainSelect) newExpression.getSelectBody();
214+
whereFunction.setCustomExpression(newPlainSelect.getWhere());
215+
assertEquals(plainSelect.toString(), "SELECT * FROM myData WHERE x > 2 AND y > 3");
216+
}
217+
192218
@Test
193219
public void testCaseWithoutElse() throws JSQLParserException {
194220
Expression expr = CCJSqlParserUtil.parseExpression("CASE WHEN 1 then 0 END");

0 commit comments

Comments
 (0)