package liquibase.database; import liquibase.database.core.H2Database; import liquibase.database.core.MSSQLDatabase; import liquibase.database.core.MySQLDatabase; import liquibase.database.core.OracleDatabase; import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class DatabaseListTest { @Test public void databaseMatchesDbmsDefinition() { assertTrue("'all' should match any database", DatabaseList.definitionMatches("all", new MySQLDatabase(), false)); assertTrue("'all' should match any database, even when others are added", DatabaseList.definitionMatches("all, oracle", new MySQLDatabase(), false)); assertFalse("'none' should not match any database", DatabaseList.definitionMatches("none", new MySQLDatabase(), false)); assertFalse("'none' should not match any database, even when others are added", DatabaseList.definitionMatches("none, oracle", new OracleDatabase(), false)); assertTrue(DatabaseList.definitionMatches("", new OracleDatabase(), true)); assertFalse(DatabaseList.definitionMatches("", new OracleDatabase(), false)); assertTrue(DatabaseList.definitionMatches((String) null, new OracleDatabase(), true)); assertFalse(DatabaseList.definitionMatches((String) null, new OracleDatabase(), false)); assertTrue(DatabaseList.definitionMatches(" ", new OracleDatabase(), true)); assertFalse(DatabaseList.definitionMatches(" ", new OracleDatabase(), false)); assertTrue(DatabaseList.definitionMatches("oracle", new OracleDatabase(), false)); assertTrue(DatabaseList.definitionMatches("oracle,mysql,mssql", new OracleDatabase(), false)); assertTrue(DatabaseList.definitionMatches("oracle,mysql,mssql", new MySQLDatabase(), false)); assertTrue(DatabaseList.definitionMatches("oracle,mysql,mssql", new MSSQLDatabase(), false)); assertFalse(DatabaseList.definitionMatches("oracle,mysql,mssql", new H2Database(), false)); assertTrue(DatabaseList.definitionMatches("!h2", new MySQLDatabase(), false)); assertTrue(DatabaseList.definitionMatches("!h2", new MySQLDatabase(), true)); assertFalse(DatabaseList.definitionMatches("!h2", new H2Database(), false)); assertFalse(DatabaseList.definitionMatches("!h2", new H2Database(), true)); assertFalse(DatabaseList.definitionMatches("!h2,mysql", new H2Database(), false)); assertTrue(DatabaseList.definitionMatches("!h2,mysql", new MySQLDatabase(), false)); } }