@Test public void defaultTestData_canBeLoadedTwice() { new DbSchemaUtil(this.em).prepareDefaultSchemaAndTestData(); new DbSchemaUtil(this.em).prepareDefaultSchemaAndTestData(); }
@Test public void defaultTestData_canBeLoaded() { new DbSchemaUtil(this.em).prepareDefaultSchemaAndTestData(); }
@Test public void canEvaluate_primaryKeyColumnName_withMultipleColumns() { new DbSchemaUtil(this.emUtil).prepareDefaultSchemaAndTestData(); List<String> primaryKeyColumns = this.emUtil.getPrimaryKeyColumns("Team_Player"); Assert.assertEquals(2, primaryKeyColumns.size()); Assert.assertEquals("players_id", primaryKeyColumns.get(0).toLowerCase()); Assert.assertEquals("teams_id", primaryKeyColumns.get(1).toLowerCase()); }
@Test public void canEvaluate_primaryKeyColumnName_withSingleColumn() { new DbSchemaUtil(this.emUtil).prepareDefaultSchemaAndTestData(); List<String> primaryKeyColumns = this.emUtil.getPrimaryKeyColumns("TestingEntity"); Assert.assertEquals(1, primaryKeyColumns.size()); Assert.assertEquals("id", primaryKeyColumns.get(0).toLowerCase()); }
@Override protected void runDbInitializationScripts(JuEmfUtil emfUtil) { try (EmfWork ew = emfUtil.startWork()) { new DbSchemaUtil(ew.getEm()).prepareDefaultSchemaAndTestData();; } }
@Override protected void runDbInitializationScripts(JuEmfUtil emfUtil) { try (EmfWork ew = emfUtil.startWork()) { new DbSchemaUtil(ew.getEm()).prepareDefaultSchemaAndTestData();; } }
@Test public void tableStructure_canBeCreatedUsingLiquibase() { DbSchemaUtil su = new DbSchemaUtil(this.em); su.clearSchema(); su.runLiquibaseChangeLog("ju-testing/data/default-changeLog.xml"); }
/** * Check if we can use the replaceOrExists tag. Liquibase doesn't support it with Derby, throwing an Exception. * Therefore we filter the change logs before submitting them to Liquibase. */ @Test public void liquibase_canUseReplaceOrExists() { DbSchemaUtil su = new DbSchemaUtil(this.em); su.clearSchema(); su.runLiquibaseChangeLog("ch/inftec/ju/dbutil/test/DbSchemaUtilTest_liquibase_canUseReplaceOrExists.xml"); } }
@Test public void canListSequences() { JuAssumeUtils.dbIsNot(this.emUtil, DbType.MYSQL); // Sequences are not supported by MqSQL new DbSchemaUtil(this.emUtil).runLiquibaseChangeLog("ch/inftec/ju/dbutil/test/JuEmUtilTest_canListSequences.xml"); List<String> sequenceNames = this.emUtil.getSequenceNames(); Assert.assertTrue(sequenceNames.contains("TESTSEQUENCE")); }
@Test public void canImportData_fromDatasetFile() { DbSchemaUtil ds = new DbSchemaUtil(this.em); ds.prepareDefaultTestData(true, true, true); DbDataUtil du = new DbDataUtil(this.em); du.cleanImport("/ch/inftec/ju/testing/db/DbDataUtilTest_testingEntity.xml"); TestingEntity te = this.em.find(TestingEntity.class, 1L); Assert.assertEquals("DbDataUtilTest", te.getName()); }
@Test public void canResetIdentityGeneration_forSequences() { JuAssumeUtils.dbIsNot(this.emUtil, DbType.MYSQL); DbSchemaUtil su = new DbSchemaUtil(this.emUtil); su.prepareDefaultSchemaAndTestData(); su.runLiquibaseChangeLog("ch/inftec/ju/dbutil/test/JuEmUtilTest_canListSequences.xml"); this.emUtil.resetIdentityGenerationOrSequences(1); // Is done by prepareDefaultSchemaAndTestData, but the testSequence might just have been created //CREATE SEQUENCE PUBLIC.testSequence Assert.assertEquals(new Long(1L), this.emUtil.getNextValueFromSequence("testSequence")); this.emUtil.resetIdentityGenerationOrSequences(10); Assert.assertEquals(new Long(10L), this.emUtil.getNextValueFromSequence("testSequence")); }
@JuDbTest(profile="derby-lb-create", persistenceUnit="ju-testing-pu-liquibase") @Test public void canGenerateSchema_usingLiquibase() { Assert.assertEquals(0, this.emUtil.getTableNames().size()); new DbSchemaUtil(this.em).runLiquibaseChangeLog("ch/inftec/ju/testing/db/LiquibaseTest_testingEntityChangeLog.xml"); assertThat(this.emUtil.getTableNames(), hasItem("TESTINGENTITY")); }
@Test @JuDbTest(profile="derby-testing", persistenceUnit="ju-testing pu-default-test-data") public void canLoadDefaultData_inAbstractDbTest() { new DbSchemaUtil(this.connUtil).prepareDefaultSchemaAndTestData(); } }
@Test public void assert_canAssertTables() { DbSchemaUtil ds = new DbSchemaUtil(this.em); ds.prepareDefaultTestData(true, true, true); DbDataUtil du = new DbDataUtil(this.emUtil); du.cleanImport("/ch/inftec/ju/testing/db/DbDataUtilTest_testingEntity_unsorted.xml"); du.buildAssert() .expected("/ch/inftec/ju/testing/db/DbDataUtilTest_testingEntity_sorted.xml") .assertEquals(); }
@Test(expected=ComparisonFailure.class) public void assert_canAssertTables_failsOnWrongData() { DbSchemaUtil ds = new DbSchemaUtil(this.em); ds.prepareDefaultTestData(true, true, true); DbDataUtil du = new DbDataUtil(this.emUtil); du.cleanImport("/ch/inftec/ju/testing/db/DbDataUtilTest_testingEntity_unsorted.xml"); du.buildAssert() .expected("/ch/inftec/ju/testing/db/DbDataUtilTest_testingEntity.xml") .assertEquals(); }
@Test public void canExportData_toXmlDocument() { DbSchemaUtil ds = new DbSchemaUtil(this.em); ds.prepareDefaultTestData(true, true, true); TestingEntity te = new TestingEntity(); te.setName("Export Test"); this.em.persist(te); DbDataUtil du = new DbDataUtil(this.em); Document doc = du.buildExport().addTable("TestingEntity").writeToXmlDocument(); XPathGetter xg = new XPathGetter(doc); logger.debug("Exported XML\n" + XmlUtils.toString(doc, false, true)); Assert.assertEquals(1, xg.getArray("//TestingEntity").length); Assert.assertEquals("Export Test", xg.getSingle("//TestingEntity/@name")); }
@JuDbTest(profile="derby-lb-change", persistenceUnit="ju-testing-pu-liquibase") @Test public void canExecute_dbUnitDataSet_asLiquibaseChangeSet() { Assert.assertEquals(0, this.emUtil.getTableNames().size()); new DbSchemaUtil(this.em).runLiquibaseChangeLog("ch/inftec/ju/testing/db/LiquibaseTest_dbUnitChangeLog.xml"); TestingEntity te = this.em.find(TestingEntity.class, 1L); Assert.assertEquals("LiquibaseDbUnitChangeSet", te.getName()); }
@Test public void tablesAreCreated_usingLiquibaseExplicitly() { DbSchemaUtil su = new DbSchemaUtil(this.em); su.clearSchema(); Assert.assertFalse(JuCollectionUtils.collectionContainsIgnoreCase(this.emUtil.getTableNames(), "TestingEntity_LB")); su.runLiquibaseChangeLog("ch/inftec/ju/dbutil/test/LiquibaseTestDataTest_testingEntity.xml"); Assert.assertTrue(JuCollectionUtils.collectionContainsIgnoreCase(this.emUtil.getTableNames(), "TestingEntity_LB")); }
@Test public void tablesAreCreated_usingFlywayExplicitly() { DbSchemaUtil su = new DbSchemaUtil(this.em); su.clearSchema(); Assert.assertFalse(JuCollectionUtils.collectionContainsIgnoreCase(this.emUtil.getTableNames(), "TESTINGENTITY_FW")); su.runFlywayMigration("db/DbSchemaUtilTest-migration"); Assert.assertTrue(JuCollectionUtils.collectionContainsIgnoreCase(this.emUtil.getTableNames(), "TESTINGENTITY_FW")); }
/** * This tests data loading from an external file, as well as locating that file in a relative * sub folder. */ @JuDbTest(profile="derby-lb-import", persistenceUnit="ju-testing-pu-liquibase") @Test public void canImportData_fromExternalFile_inRelativeSubFolder() { Assert.assertEquals(0, this.emUtil.getTableNames().size()); new DbSchemaUtil(this.em).runLiquibaseChangeLog("ch/inftec/ju/testing/db/LiquibaseTest_loadFromExternalFile.xml"); TestingEntity te = this.em.find(TestingEntity.class, 1L); Assert.assertEquals("Loaded from File", te.getName()); } }