Package nablarch.test.core.http
Class HttpRequestTestSupport
java.lang.Object
nablarch.test.event.TestEventDispatcher
nablarch.test.core.http.HttpRequestTestSupport
- Direct Known Subclasses:
AbstractHttpRequestTestTemplate
HTTPリクエストテスト用の基底クラス。
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected class
コピー対象となるHTMLリソースの拡張子。 -
Field Summary
Fields inherited from class nablarch.test.event.TestEventDispatcher
testName
-
Constructor Summary
ModifierConstructorDescriptionprotected
コンストラクタ
本メソッドはサブクラスから使用されることを想定している。HttpRequestTestSupport
(Class<?> testClass) コンストラクタ。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
assertApplicationMessageId
(String[] expected, ExecutionContext actual) メッセージIDのアサートを行う。void
assertApplicationMessageId
(String msg, String[] expected, ExecutionContext actual) メッセージIDのアサートを行う。void
assertApplicationMessageId
(String msg, String expectedCommaSeparated, ExecutionContext actual) メッセージIDのアサートを行う。void
assertApplicationMessageId
(String expectedCommaSeparated, ExecutionContext actual) メッセージIDのアサートを行う。void
assertEntity
(String sheetName, String id, Object actual) void
assertForward
(String msg, String expectedUri) フォワード先URIが想定通りであることを表明する。void
assertObjectArrayPropertyEquals
(String message, String sheetName, String id, Object[] actual) Object配列に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)
を参照。void
assertObjectListPropertyEquals
(String message, String sheetName, String id, List<?> actual) Object に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)
を参照。void
assertObjectPropertyEquals
(String message, String sheetName, String id, Object actual) Object に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)
を参照。void
assertSqlResultSetEquals
(String message, String sheetName, String id, SqlResultSet actual) void
assertSqlRowEquals
(String message, String sheetName, String id, SqlRow actual) protected void
assertStatusCode
(String message, int expected, HttpResponse response) ステータスコードが想定通りであることを表明する。void
assertTableEquals
(String sheetName) void
assertTableEquals
(String sheetName, String groupId) void
assertTableEquals
(String message, String sheetName, String groupId) protected void
copyHtmlResourceToDumpDir
(HttpTestConfiguration config, File destDir, ResourceLocator warBaseLocator) HTMLリソースをダンプファイルの出力ディレクトリへコピーする。createExecutionContext
(String userId) ExecutionContext
を生成する。リクエストパラメータを作成する。createHttpRequest
(String requestUri, Map<String, String[]> params) リクエストパラメータを作成する。createHttpRequestWithConversion
(String requestUri, String httpMethod, Map<String, String> commaSeparated, Map<String, String> cookie) リクエストパラメータを作成する。createHttpRequestWithConversion
(String requestUri, String httpMethod, Map<String, String> commaSeparated, Map<String, String> cookie, Map<String, String> queryParams) リクエストパラメータを作成する。createHttpRequestWithConversion
(String requestUri, Map<String, String> commaSeparated, Map<String, String> cookie) リクエストパラメータを作成する。protected HttpServer
HttpServerのインスタンスを生成する。protected HttpServer
HttpServerを生成する。protected void
deleteHtmlResourceFile
(File srcDir, File destDir) ダンプディレクトリのHTMLリソースファイルを削除する。execute
(Class<?> testClass, String caseName, HttpRequest req, ExecutionContext ctx) 自動テスト用HTTPサーバを使用して、リクエスト単体テストを実現する。protected HttpResponse
execute
(String caseName, HttpRequest req, ExecutionContext ctx) 自動テスト用HTTPサーバを使用して、リクエスト単体テストを実現する。protected String
getAbsoluteCssUriPrefix
(String uri, String replaceAbsolutePath) URI型の絶対パス参照文字列から、URIのプレフィックスを取得する。protected File
HTTPレスポンスボディが出力されたファイルを取得する。protected FileFilter
getFileFilter
(HttpTestConfiguration config) FileFilterを取得する。getListMap
(String sheetName, String id) getListParamMap
(String sheetName, String id) String[]
getParam
(HttpRequest request, String name) getParamMap
(String sheetName, String id) getParamMap
(HttpRequest request) サポートハンドラを取得する。protected void
initializeIfNotYet
(HttpTestConfiguration config, File dumpDir, String className) 初回時のみ初期化を実行する。boolean
is3XXStatusCode
(int statusCode) 300系の HTTP ステータスコードかどうか判定するprotected void
prepareHandlerQueue
(List<Handler> handlerQueue) ハンドラキューの準備を行う。static void
キャッシュした HttpServer をリセットする。protected String
rewritePath
(String text, String replaceAbsolutePath) 静的リソース内のパスを置き換える。protected void
rewriteResourceFile
(HttpTestConfiguration config, File dumpDir, ResourceLocator warBaseLocator) HTMLリソースディレクトリ内のCSSファイルを置換する。protected void
setDumpFile
(ExecutionContext ctx, File file) HTTPレスポンスボディが出力されたファイルを設定する。protected static void
setHttpHeader
(HttpRequest req, HttpTestConfiguration config) HTTPHeaderを設定する。
すでにHttpRequestに設定されている項目は、設定しない。void
setToken
(HttpRequest request, ExecutionContext context, boolean valid) トークンをリクエストパラメータとセッションスコープに設定する。
引数validが真の場合、有効なトークンを設定する。偽の場合はトークンを無効にする。void
DbAccessTestSupport.setUpDb(String)
への委譲メソッド。void
void
setValidToken
(HttpRequest request, ExecutionContext context) 有効なトークンをリクエストパラメータとセッションスコープに設定する。
二重サブミットを防止しているアクションのメソッドをテストする場合は、このメソッドを呼び出しトークンを設定する。Methods inherited from class nablarch.test.event.TestEventDispatcher
dispatchEventOfAfterTestClass, dispatchEventOfAfterTestMethod, dispatchEventOfBeforeTestClassAndBeforeSuit, dispatchEventOfBeforeTestMethod, getMethodName
-
Field Details
-
testClass
テストクラス
-
-
Constructor Details
-
HttpRequestTestSupport
コンストラクタ。- Parameters:
testClass
- テストクラス
-
HttpRequestTestSupport
protected HttpRequestTestSupport()コンストラクタ
本メソッドはサブクラスから使用されることを想定している。
-
-
Method Details
-
execute
自動テスト用HTTPサーバを使用して、リクエスト単体テストを実現する。- Parameters:
req
- テスト対象のアクションを呼び出すためのHttpRequestcaseName
- テストケース名ctx
- ExecutionContext- Returns:
- HttpResponse
-
initializeIfNotYet
初回時のみ初期化を実行する。- Parameters:
config
- HttpTestConfigurationdumpDir
- HTMLダンプ先のディレクトリclassName
- テストクラス
-
execute
public HttpResponse execute(Class<?> testClass, String caseName, HttpRequest req, ExecutionContext ctx) 自動テスト用HTTPサーバを使用して、リクエスト単体テストを実現する。- Parameters:
testClass
- テストクラスreq
- テスト対象のアクションを呼び出すためのHttpRequestcaseName
- テストケース名ctx
- ExecutionContext- Returns:
- HttpResponse
-
createHttpServer
HttpServerを生成する。- Parameters:
config
- HttpTestConfiguration- Returns:
- HTTPサーバ
-
getTestSupportHandler
サポートハンドラを取得する。- Returns:
- サポートハンドラ
-
prepareHandlerQueue
ハンドラキューの準備を行う。- Parameters:
handlerQueue
- ハンドラキュー
-
createHttpServer
HttpServerのインスタンスを生成する。- Returns:
- HttpServerのインスタンス
-
copyHtmlResourceToDumpDir
protected void copyHtmlResourceToDumpDir(HttpTestConfiguration config, File destDir, ResourceLocator warBaseLocator) HTMLリソースをダンプファイルの出力ディレクトリへコピーする。- Parameters:
config
- HttpTestConfigurationdestDir
- 出力ディレクトリwarBaseLocator
- warベースディレクトリのリソースロケータ
-
deleteHtmlResourceFile
ダンプディレクトリのHTMLリソースファイルを削除する。- Parameters:
srcDir
- HTMLリソースフォルダdestDir
- HTMLリソースのコピーフォルダ
-
rewriteResourceFile
protected void rewriteResourceFile(HttpTestConfiguration config, File dumpDir, ResourceLocator warBaseLocator) HTMLリソースディレクトリ内のCSSファイルを置換する。出力したCSSファイルのタイムスタンプには、出力元CSSファイルのタイムスタンプを設定する。 次回、出力時にはタイムスタンプに変更がない限り、出力は行わない。
- Parameters:
config
- HttpTestConfigurationdumpDir
- 出力先ディレクトリwarBaseLocator
- warベースのリソースロケータ
-
rewritePath
静的リソース内のパスを置き換える。- Parameters:
text
- 文字列replaceAbsolutePath
- ファイルの絶対パスからwarのルートパスを取り除いたパス。- Returns:
- 置換後の文字列
-
getAbsoluteCssUriPrefix
URI型の絶対パス参照文字列から、URIのプレフィックスを取得する。- Parameters:
uri
- URI型の絶対パス参照文字列replaceAbsolutePath
- HTMLリソースの絶対パスからwarのルートパスを取り除いたパス。- Returns:
- URIのプレフックス
-
getFileFilter
FileFilterを取得する。- Parameters:
config
- HttpTestConfiguration- Returns:
- FileFilter
-
setHttpHeader
HTTPHeaderを設定する。
すでにHttpRequestに設定されている項目は、設定しない。- Parameters:
req
- HTTPHeaderを設定するHttpRequestconfig
- HttpTestConfiguration
-
assertForward
フォワード先URIが想定通りであることを表明する。- Parameters:
msg
- アサート失敗時のメッセージexpectedUri
- 期待するフォワード先URI
-
assertStatusCode
ステータスコードが想定通りであることを表明する。
内蔵サーバから戻り値で返却されたHTTPレスポンスがリダイレクトである場合、 ステータスコードが303または302であることを表明する。 このとき、内蔵サーバから返却されるHTTPレスポンスと比較しないのは、後方互換性を保つためである。 (内蔵サーバは、リダイレクト時のステータスコードに'302 FOUND'を使用する)
上記以外の場合は、
HttpRequestTestSupportHandler.getStatusCode()
のステータスコードを比較対象とする。- Parameters:
message
- アサート失敗時のメッセージexpected
- 期待するステータスコード値response
- HTTPレスポンス- See Also:
-
is3XXStatusCode
public boolean is3XXStatusCode(int statusCode) 300系の HTTP ステータスコードかどうか判定する- Parameters:
statusCode
- 判定対象のHTTPステータスコード- Returns:
- 300系の HTTP ステータスコードであれば true
-
assertApplicationMessageId
メッセージIDのアサートを行う。- Parameters:
expectedCommaSeparated
- 期待するメッセージID(カンマ区切り)actual
- 実行結果(メッセージIDをリクエストスコープにもつExecutionContext)
-
assertApplicationMessageId
public void assertApplicationMessageId(String msg, String expectedCommaSeparated, ExecutionContext actual) メッセージIDのアサートを行う。- Parameters:
msg
- 任意のメッセージexpectedCommaSeparated
- 期待するメッセージID(カンマ区切り)actual
- 実行結果(メッセージIDをリクエストスコープにもつExecutionContext)
-
assertApplicationMessageId
メッセージIDのアサートを行う。- Parameters:
expected
- 期待するメッセージIDの配列actual
- 実行結果(メッセージIDをリクエストスコープにもつExecutionContext)
-
assertApplicationMessageId
メッセージIDのアサートを行う。- Parameters:
msg
- 任意のメッセージexpected
- 期待するメッセージIDの配列actual
- 実行結果(メッセージIDをリクエストスコープにもつExecutionContext)
-
setValidToken
有効なトークンをリクエストパラメータとセッションスコープに設定する。
二重サブミットを防止しているアクションのメソッドをテストする場合は、このメソッドを呼び出しトークンを設定する。- Parameters:
request
- テスト対象のアクションを呼び出すためのHttpRequestcontext
- ExecutionContext
-
setToken
トークンをリクエストパラメータとセッションスコープに設定する。
引数validが真の場合、有効なトークンを設定する。偽の場合はトークンを無効にする。- Parameters:
request
- テスト対象のアクションを呼び出すためのHttpRequestcontext
- ExecutionContextvalid
- 有効なトークンを設定するかどうか
-
createHttpRequest
public HttpRequest createHttpRequest(String requestUri, String httpMethod, Map<String, String[]> params) リクエストパラメータを作成する。- Parameters:
requestUri
- リクエストURIhttpMethod
- HTTPメソッドparams
- パラメータが格納されたMap- Returns:
- リクエストパラメータ
-
createHttpRequest
リクエストパラメータを作成する。- Parameters:
requestUri
- リクエストURIparams
- パラメータが格納されたMap- Returns:
- リクエストパラメータ
-
createHttpRequestWithConversion
public HttpRequest createHttpRequestWithConversion(String requestUri, String httpMethod, Map<String, String> commaSeparated, Map<String, String> cookie, Map<String, String> queryParams) リクエストパラメータを作成する。- Parameters:
requestUri
- リクエストURIhttpMethod
- HTTPメソッドcommaSeparated
- パラメータが格納されたMapcookie
- Cookie情報が格納されたMapqueryParams
- クエリパラメータ情報が格納されたMap- Returns:
- リクエストパラメータ
-
createHttpRequestWithConversion
public HttpRequest createHttpRequestWithConversion(String requestUri, Map<String, String> commaSeparated, Map<String, String> cookie) リクエストパラメータを作成する。- Parameters:
requestUri
- リクエストURIcommaSeparated
- パラメータが格納されたMapcookie
- Cookie情報が格納されたMap- Returns:
- リクエストパラメータ
-
createHttpRequestWithConversion
public HttpRequest createHttpRequestWithConversion(String requestUri, String httpMethod, Map<String, String> commaSeparated, Map<String, String> cookie) リクエストパラメータを作成する。- Parameters:
requestUri
- リクエストURIhttpMethod
- HTTPメソッドcommaSeparated
- パラメータが格納されたMapcookie
- Cookie情報が格納されたMap- Returns:
- リクエストパラメータ
-
createExecutionContext
ExecutionContext
を生成する。- Parameters:
userId
- セッションスコープに格納するユーザID- Returns:
- 生成したExecutionContext
-
getDumpFile
HTTPレスポンスボディが出力されたファイルを取得する。- Parameters:
ctx
- ExecutionContext- Returns:
- ファイル。HTTPダンプ出力が無効な場合はnull
-
setDumpFile
HTTPレスポンスボディが出力されたファイルを設定する。- Parameters:
ctx
- ExecutionContextfile
- ファイル
-
setUpDb
DbAccessTestSupport.setUpDb(String)
への委譲メソッド。- Parameters:
sheetName
- シート名- See Also:
-
setUpDb
- Parameters:
sheetName
- シート名groupId
- グループID- See Also:
-
assertSqlResultSetEquals
public void assertSqlResultSetEquals(String message, String sheetName, String id, SqlResultSet actual) - Parameters:
message
- 比較失敗時のメッセージsheetName
- 期待値を格納したシート名id
- シート内のデータを特定するためのIDactual
- 実際の値- See Also:
-
assertSqlRowEquals
DbAccessTestSupport.assertSqlRowEquals(String, String, String, nablarch.core.db.statement.SqlRow)
への委譲メソッド。- Parameters:
message
- 比較失敗時のメッセージsheetName
- 期待値を格納したシート名id
- シート内のデータを特定するためのIDactual
- 実際の値
-
getListMap
- Parameters:
sheetName
- シート名id
- ID- Returns:
- List-Map形式のデータ
- See Also:
-
getListParamMap
- Parameters:
sheetName
- シート名id
- ID- Returns:
- List-Map<String, String[]>形式のデータ
- See Also:
-
getParamMap
- Parameters:
sheetName
- シート名id
- ID- Returns:
- Map<String,String[]>形式のデータ
- See Also:
-
assertTableEquals
- Parameters:
sheetName
- 期待値を格納したシート名- See Also:
-
assertTableEquals
- Parameters:
sheetName
- 期待値を格納したシート名groupId
- グループID(オプション)- See Also:
-
assertTableEquals
- Parameters:
message
- 比較失敗時のメッセージgroupId
- グループID(オプション)sheetName
- 期待値を格納したシート名- See Also:
-
assertEntity
- Parameters:
sheetName
- シート名id
- ケース表のID(LIST_MAP=testの場合は、testを指定する。)actual
- 実行結果のオブジェクト(Java Beansオブジェクト)
-
assertObjectPropertyEquals
Object に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)
を参照。- Parameters:
message
- メッセージsheetName
- シート名id
- ケース表のID(LIST_MAP=testの場合は、testを指定する。)actual
- 実際の値
-
assertObjectArrayPropertyEquals
public void assertObjectArrayPropertyEquals(String message, String sheetName, String id, Object[] actual) Object配列に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)
を参照。- Parameters:
message
- メッセージsheetName
- シート名id
- ケース表のID(LIST_MAP=testの場合は、testを指定する。)actual
- 実際の値
-
assertObjectListPropertyEquals
public void assertObjectListPropertyEquals(String message, String sheetName, String id, List<?> actual) Object に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)
を参照。- Parameters:
message
- メッセージsheetName
- シート名id
- ケース表のID(LIST_MAP=testの場合は、testを指定する。)actual
- 実際の値
-
resetHttpServer
public static void resetHttpServer()キャッシュした HttpServer をリセットする。 -
getParamMap
- Parameters:
request
- HTTPリクエスト- Returns:
- リクエストパラメータのMap
-
getParam
- Parameters:
request
- HTTPリクエストname
- パラメータ名- Returns:
- リクエストパラメータの値
-