public class MasterDataRestorer extends TestEventListener.Template
テスト内でマスタデータの書き換えが発生した場合、その復旧を行う。
テスト実行中、MasterDataRestorer.SqlLogWatchingFormatter
から発行されたSQL文の通知を受ける。
マスタデータの書き換えが発生していた場合、次のテストメソッドが実行される前に、
マスタデータテーブルの復旧をTableDuplicatorに依頼する。
事前に準備されたマスタデータ復旧用のスキーマからデータをコピーすることにより、
マスタデータの復旧を行う。
マスタデータを復旧する順序はテーブルの依存関係(FK)に則り行われるが、
コンポーネント定義にnablarch.suppress-table-sortというキーで
真偽値true
が設定されていた場合はtablesTobeWatchedに設定された順序でマスタデータのインサート、逆順でデリートを行う。
更新SQLかどうかの判定するために厳密なSQL解析は行っていない。 更新SQLと見做せる条件のうちいずれかを満たしていればマスタデータ復旧を行う。 これは以下の理由による。
修飾子とタイプ | クラスと説明 |
---|---|
static class |
MasterDataRestorer.SqlLogWatchingFormatter
発行されたSQL文を監視するSqlLogFormatterサブクラス
本クラスへの出力された更新系SQLログは、全てnablarch.test.core.db.MasterDataRestorerに通知される。 |
TestEventListener.Template
コンストラクタと説明 |
---|
MasterDataRestorer() |
修飾子とタイプ | メソッドと説明 |
---|---|
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キーワードを設定する。
|
afterTestClass, beforeTestClass, beforeTestMethod, beforeTestSuite
public void afterTestMethod()
afterTestMethod
インタフェース内 TestEventListener
afterTestMethod
クラス内 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キーワード