*/
@Test
public void executeTest05() throws Exception {
// テストデータを指定
File testDataDir = new File("src/test/data/recoverer/executeTest04");
TestUtils util = new TestUtils(testDataDir);
// テストデータをセット
util.storeToDatabase(false);
// テンポラリテーブルを作成
String tempTable1 = "TEMP_6";
String dropSql1 = "DROP TABLE IF EXISTS TEMP_6";
String createSql1 = "CREATE TABLE `TEMP_6` (`TEMP_SID` BIGINT AUTO_INCREMENT,`SID` BIGINT NULL,`VERSION_NO` BIGINT NULL DEFAULT 1,`TEXTDATA1` VARCHAR(45) NULL ,`INTDATA1` INT NULL ,`DATEDATA1` DATETIME NULL ,`RGST_DATE` DATETIME NULL ,`UPDT_DATE` DATETIME NULL ,`DUPLICATE_FLG` CHAR(1) NULL ,PRIMARY KEY (`TEMP_SID`) ) ENGINE=InnoDB;";
String tempTable2 = "TEMP_7";
String dropSql2 = "DROP TABLE IF EXISTS TEMP_7";
String createSql2 = "CREATE TABLE `TEMP_7` (`TEMP_SID` BIGINT AUTO_INCREMENT,`SID` BIGINT NULL,`VERSION_NO` BIGINT NULL DEFAULT 1,`TEXTDATA2` VARCHAR(45) NULL ,`INTDATA2` INT NULL ,`DATEDATA2` DATETIME NULL ,`RGST_DATE` DATETIME NULL ,`UPDT_DATE` DATETIME NULL ,`DUPLICATE_FLG` CHAR(1) NULL ,PRIMARY KEY (`TEMP_SID`) ) ENGINE=InnoDB;";
UnitTestUtil.executeUpdate(dropSql1);
UnitTestUtil.executeUpdate(createSql1);
UnitTestUtil.executeUpdate(dropSql2);
UnitTestUtil.executeUpdate(createSql2);
// 処理の実行
String[] args = new String[]{targetName, executionId};
Recoverer recoverer = new StubRecoverer();
int result = recoverer.execute(args);
// 実行結果の検証
assertEquals(2, result);
// DBの結果を検証
util.loadFromDatabase();
if (!util.inspect()) {
for (Cause cause : util.getCauses()) {
System.out.println(cause.getMessage());
}
fail(util.getCauseMessage());
}
// テンポラリテーブルが存在しない事を確認
assertFalse(UnitTestUtil.isExistTable(tempTable1));
assertFalse(UnitTestUtil.isExistTable(tempTable2));