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