package liquibase.change; import liquibase.change.core.RawSQLChange; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; public class AbstractSQLChangeTest extends AbstractChangeTest { private RawSQLChange refactoring; @Before public void setUp() throws Exception { refactoring = new RawSQLChange(); } @Override @Test public void getRefactoringName() throws Exception { assertEquals("Custom SQL", new RawSQLChange().getChangeMetaData().getDescription()); } @Override public void generateStatement() throws Exception { //To change body of implemented methods use File | Settings | File Templates. } // @Test // public void generateStatement() throws Exception { // refactoring.setSql("SQL STATEMENT HERE"); // OracleDatabase database = new OracleDatabase(); // assertEquals("SQL STATEMENT HERE", refactoring.generateStatements(database)[0].getSqlStatement(database)); // } @Override @Test public void getConfirmationMessage() throws Exception { assertEquals("Custom SQL executed", refactoring.getConfirmationMessage()); } // @Test // public void multiLineSQLFileSemiColon() throws Exception { // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("SELECT * FROM customer;\n" + // "SELECT * from table;"); // OracleDatabase database = new OracleDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // // assertEquals(2,statements.length); // assertEquals("SELECT * FROM customer",statements[0].getSqlStatement(database)); // assertEquals("SELECT * from table",statements[1].getSqlStatement(database)); // } // @Test // public void singleLineEndInSemiColon() throws Exception { // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("SELECT * FROM customer;"); // OracleDatabase database = new OracleDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // assertEquals(1,statements.length); // assertEquals("SELECT * FROM customer",statements[0].getSqlStatement(database)); // } // @Test // public void singleLineEndGo() throws Exception { // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("SELECT * FROM customer\ngo"); // MSSQLDatabase database = new MSSQLDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // assertEquals(1,statements.length); // assertEquals("SELECT * FROM customer",statements[0].getSqlStatement(database)); // } // @Test // public void singleLineBeginGo() throws Exception { // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("goSELECT * FROM customer\ngo"); // MSSQLDatabase database = new MSSQLDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // assertEquals(1,statements.length); // assertEquals("goSELECT * FROM customer",statements[0].getSqlStatement(database)); // } // @Test // public void multiLineSQLFileGoShouldFind() throws Exception { // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("SELECT * FROM customer\ngo\n" + // "SELECT * from table\ngo"); // MSSQLDatabase database = new MSSQLDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // assertEquals(2,statements.length); // assertEquals("SELECT * FROM customer",statements[0].getSqlStatement(database)); // assertEquals("SELECT * from table",statements[1].getSqlStatement(database)); // } // @Test // public void multiLineSQLFileGoShouldNotFind() throws Exception { // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("SELECT * FROM go\ngo\n" + // "SELECT * from gogo\ngo\n"); // MSSQLDatabase database = new MSSQLDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // // assertEquals(2,statements.length); // assertEquals("SELECT * FROM go",statements[0].getSqlStatement(database)); // assertEquals("SELECT * from gogo",statements[1].getSqlStatement(database)); // } // @Test // public void stripComments() throws UnsupportedChangeException, StatementNotSupportedOnDatabaseException { // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("SELECT * FROM x\n -- A comment"); // change2.setStripComments(true); // MSSQLDatabase database = new MSSQLDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // // assertEquals(1,statements.length); // assertEquals("SELECT * FROM x\n",statements[0].getSqlStatement(database)); // } // @Test // public void turnOffSplitting() throws UnsupportedChangeException, StatementNotSupportedOnDatabaseException { // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("SELECT * FROM x;SELECT * FROM x;"); // change2.setSplitStatements(false); // MSSQLDatabase database = new MSSQLDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // // assertEquals(1,statements.length); // assertEquals("SELECT * FROM x;SELECT * FROM x;",statements[0].getSqlStatement(database)); // } // @Test // public void defaultSplittingAndNoStripping() throws Exception{ // SQLFileChange change2 = new SQLFileChange(); // change2.setSql("SELECT * FROM x;\n/*A Comment*/SELECT * FROM x;"); // // MSSQLDatabase database = new MSSQLDatabase(); // SqlStatement[] statements = change2.generateStatements(database); // // assertEquals(2,statements.length); // assertEquals("SELECT * FROM x",statements[0].getSqlStatement(database)); // assertEquals("/*A Comment*/SELECT * FROM x",statements[1].getSqlStatement(database)); // } }