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
afterTestClass, afterTestMethod, beforeTestClass, beforeTestMethod, beforeTestSuite