@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 canResetIdentityGeneration_forPrimeryKeys() { new DbSchemaUtil(this.emUtil).prepareDefaultSchemaAndTestData(); // Try to set identity generation to 10 this.emUtil.resetIdentityGenerationOrSequences(10); TestingEntity te1 = new TestingEntity(); this.em.persist(te1); Assert.assertEquals(new Long(10L), te1.getId()); // Delete all TestingEntities and set identity generation to 1 this.em.createQuery("delete from TestingEntity t").executeUpdate(); this.emUtil.resetIdentityGenerationOrSequences(1); TestingEntity te2 = new TestingEntity(); this.em.persist(te2); Assert.assertEquals(new Long(1L), te2.getId()); }
@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")); }
@Test public void canRead_allDataTypes_fromDefaultTestData() throws ParseException { new DbSchemaUtil(this.em).prepareDefaultSchemaAndTestData(); DataTypes dt1 = this.em.find(DataTypes.class, -1L); Assert.assertEquals(new Integer(1), dt1.getIntNumber()); Assert.assertEquals(new Long(2), dt1.getBigIntNumber()); Assert.assertEquals("one", dt1.getVarcharText()); Assert.assertEquals("oneClob", dt1.getClobText()); Assert.assertEquals(JuStringUtils.DATE_FORMAT_DAYS.parseObject("03.12.1980"), dt1.getDateField()); // We'll skip TIME checking for Oracle as it isn't supported by this DB if (this.emUtil.getDbType() != DbType.ORACLE) { String hours = JuStringUtils.DATE_FORMAT_SECONDS.format(dt1.getTimeField()); Assert.assertTrue(hours.endsWith("10:11:12")); // hours will be todays date, followed by the time } Assert.assertEquals(JuStringUtils.DATE_FORMAT_SECONDS.parseObject("03.12.1980 10:11:12"), dt1.getTimeStampField()); }
@Test @JuDbTest(profile="derby-testing", persistenceUnit="ju-testing pu-default-test-data") public void canLoadDefaultData_inAbstractDbTest() { new DbSchemaUtil(this.connUtil).prepareDefaultSchemaAndTestData(); } }
@Test public void canRead_allNullValues_fromDefaultTestData() throws ParseException { new DbSchemaUtil(this.em).prepareDefaultSchemaAndTestData(); DataTypes dt2 = this.em.find(DataTypes.class, -2L); Assert.assertNull(dt2.getIntNumber()); Assert.assertNull(dt2.getBigIntNumber()); Assert.assertNull(dt2.getVarcharText()); Assert.assertNull(dt2.getClobText()); Assert.assertNull(dt2.getDateField()); Assert.assertNull(dt2.getTimeField()); // MySQL sets a TimeStamp field to the current time unless it has been created // explicitly with a NULL attribute which Liquibase doesn't do. Assume.assumeTrue(this.emUtil.getDbType() != DbType.MYSQL); Assert.assertNull(dt2.getTimeStampField()); } }