package schemacrawler.integration.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import static schemacrawler.test.utility.TestUtility.compareOutput; import java.io.File; import java.io.FileWriter; import java.util.List; import java.util.Properties; import org.junit.Test; import schemacrawler.schema.Database; import schemacrawler.schema.Schema; import schemacrawler.schema.Table; import schemacrawler.schemacrawler.SchemaCrawlerOptions; import schemacrawler.test.utility.BaseDatabaseTest; import schemacrawler.tools.hsqldb.BundledDriverOptions; import schemacrawler.tools.options.InfoLevel; import schemacrawler.tools.options.OutputFormat; import schemacrawler.utility.SchemaCrawlerUtility; public class TestBundledDistributions extends BaseDatabaseTest { @Test public void testHsqldbMain() throws Exception { final File testConfigFile = File.createTempFile("schemacrawler.test.", ".properties"); final FileWriter writer = new FileWriter(testConfigFile); final Properties properties = new Properties(); properties .setProperty("hsqldb.tables", "SELECT TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS FROM INFORMATION_SCHEMA.SYSTEM_TABLES"); properties.store(writer, "testHsqldbMain"); writer.close(); final OutputFormat outputFormat = OutputFormat.text; final String referenceFile = "hsqldb.main" + "." + outputFormat.name(); final File testOutputFile = File.createTempFile("schemacrawler." + referenceFile + ".", ".test"); testOutputFile.delete(); schemacrawler.tools.hsqldb.Main.main(new String[] { "-database=schemacrawler", "-user=sa", "-password=", "-g", testConfigFile.getAbsolutePath(), "-command=details,dump,count,hsqldb.tables", "-infolevel=standard", "-outputfile=" + testOutputFile }); final List<String> failures = compareOutput(referenceFile, testOutputFile, outputFormat.name()); if (failures.size() > 0) { fail(failures.toString()); } else { testConfigFile.delete(); testOutputFile.delete(); } } @Test public void testHsqldbWithConnection() throws Exception { final SchemaCrawlerOptions schemaCrawlerOptions = new BundledDriverOptions() .getSchemaCrawlerOptions(InfoLevel.maximum); final Database database = SchemaCrawlerUtility .getDatabase(getConnection(), schemaCrawlerOptions); assertNotNull(database); assertEquals(6, database.getSchemas().size()); final Schema schema = database.getSchema("PUBLIC.BOOKS"); assertNotNull(schema); assertEquals(6, database.getTables(schema).size()); final Table table = database.getTable(schema, "AUTHORS"); assertNotNull(table); assertEquals(1, table.getTriggers().size()); assertNotNull(table.getTrigger("TRG_AUTHORS")); } }