AlterViewTest.java
/*-
* #%L
* JSQLParser library
* %%
* Copyright (C) 2004 - 2019 JSQLParser
* %%
* Dual licensed under GNU LGPL 2.1 or Apache License 2.0
* #L%
*/
package net.sf.jsqlparser.statement.create;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.schema.Column;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.create.view.AlterView;
import net.sf.jsqlparser.statement.select.AllColumns;
import net.sf.jsqlparser.statement.select.PlainSelect;
import org.junit.jupiter.api.Test;
import java.util.Collections;
import static net.sf.jsqlparser.test.TestUtils.assertDeparse;
import static net.sf.jsqlparser.test.TestUtils.assertEqualsObjectTree;
import static net.sf.jsqlparser.test.TestUtils.assertSqlCanBeParsedAndDeparsed;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class AlterViewTest {
@Test
public void testAlterView() throws JSQLParserException {
String statement = "ALTER VIEW myview AS SELECT * FROM mytab";
Statement parsed = assertSqlCanBeParsedAndDeparsed(statement);
AlterView created = new AlterView().withView(new Table("myview"))
.withSelect(new PlainSelect()
.addSelectItem(new AllColumns())
.withFromItem(new Table("mytab")));
assertDeparse(created, statement);
assertEqualsObjectTree(parsed, created);
}
@Test
public void testReplaceView() throws JSQLParserException {
String statement = "REPLACE VIEW myview(a, b) AS SELECT a, b FROM mytab";
Statement parsed = assertSqlCanBeParsedAndDeparsed(statement);
AlterView alterView = new AlterView().withUseReplace(true).addColumnNames("a")
.addColumnNames(Collections.singleton("b"))
.withView(new Table("myview"))
.withSelect(new PlainSelect()
.addSelectItems(new Column("a"),
new Column("b"))
.withFromItem(new Table("mytab")));
assertTrue(alterView.getSelectBody(PlainSelect.class) instanceof PlainSelect);
assertDeparse(alterView, statement);
assertEqualsObjectTree(parsed, alterView);
}
}