public class MasterDataRestorer extends TestEventListener.Template
テスト内でマスタデータの書き換えが発生した場合、その復旧を行う。
テスト実行中、MasterDataRestorer.SqlLogWatchingFormatter
から発行されたSQL文の通知を受ける。
マスタデータの書き換えが発生していた場合、次のテストメソッドが実行される前に、
マスタデータテーブルの復旧をTableDuplicatorに依頼する。
事前に準備されたマスタデータ復旧用のスキーマからデータをコピーすることにより、
マスタデータの復旧を行う。
マスタデータを復旧する順序はテーブルの依存関係(FK)に則り行われるが、
コンポーネント定義にnablarch.suppress-table-sortというキーで
真偽値true
が設定されていた場合はtablesTobeWatchedに設定された順序でマスタデータのインサート、逆順でデリートを行う。
更新SQLかどうかの判定するために厳密なSQL解析は行っていない。 更新SQLと見做せる条件のうちいずれかを満たしていればマスタデータ復旧を行う。 これは以下の理由による。
Modifier and Type | Class and Description |
---|---|
static class |
MasterDataRestorer.SqlLogWatchingFormatter
発行されたSQL文を監視するSqlLogFormatterサブクラス
|
TestEventListener.Template
Constructor and Description |
---|
MasterDataRestorer() |
Modifier and Type | Method and Description |
---|---|
void |
afterTestMethod()
テストメソッド実行後に呼び出されるコールバック
|
void |
setBackupSchema(java.lang.String backupSchema)
バックアップスキーマを設定する。
|
void |
setTablesTobeWatched(java.util.List<java.lang.String> tablesTobeWatched)
監視対象テーブル名を設定する。
|
void |
setUpdateSqlKeywords(java.util.List<java.lang.String> updateSqlKeywords)
更新とみなされるSQLキーワードを設定する。
SQLキーワード文字列末尾には半角スペースが付与される。
|
afterTestClass, beforeTestClass, beforeTestMethod, beforeTestSuite
public void afterTestMethod()
afterTestMethod
in interface TestEventListener
afterTestMethod
in class TestEventListener.Template
public void setTablesTobeWatched(java.util.List<java.lang.String> tablesTobeWatched)
tablesTobeWatched
- 監視対象テーブルpublic void setBackupSchema(java.lang.String backupSchema)
backupSchema
- バックアップスキーマを設定する。public void setUpdateSqlKeywords(java.util.List<java.lang.String> updateSqlKeywords)
updateSqlKeywords
- 更新とみなされるSQLキーワード