package net.sf.jsqlparser.util;
import java.io.StringReader;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.expression.BinaryExpression;
import net.sf.jsqlparser.expression.operators.arithmetic.Addition;
import net.sf.jsqlparser.expression.operators.arithmetic.Concat;
import net.sf.jsqlparser.parser.CCJSqlParserManager;
import net.sf.jsqlparser.statement.select.Select;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author tw
*/
public class ConnectExpressionsVisitorTest {
public ConnectExpressionsVisitorTest() {
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
CCJSqlParserManager parserManager = new CCJSqlParserManager();
@Test
public void testVisit_PlainSelect_concat() throws JSQLParserException {
String sql = "select a,b,c from test";
Select select = (Select) parserManager.parse(new StringReader(sql));
ConnectExpressionsVisitor instance = new ConnectExpressionsVisitor() {
@Override
protected BinaryExpression createBinaryExpression() {
return new Concat();
}
};
select.getSelectBody().accept(instance);
assertEquals("SELECT a || b || c AS expr FROM test", select.toString());
}
@Test
public void testVisit_PlainSelect_addition() throws JSQLParserException {
String sql = "select a,b,c from test";
Select select = (Select) parserManager.parse(new StringReader(sql));
ConnectExpressionsVisitor instance = new ConnectExpressionsVisitor("testexpr") {
@Override
protected BinaryExpression createBinaryExpression() {
return new Addition();
}
};
select.getSelectBody().accept(instance);
assertEquals("SELECT a + b + c AS testexpr FROM test", select.toString());
}
}