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
Nested ClassesModifier and TypeClassDescriptionprotected classコピー対象となるHTMLリソースの拡張子。 -
Field Summary
FieldsFields inherited from class nablarch.test.event.TestEventDispatcher
testName -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedコンストラクタ
本メソッドはサブクラスから使用されることを想定している。HttpRequestTestSupport(Class<?> testClass) コンストラクタ。 -
Method Summary
Modifier and TypeMethodDescriptionvoidassertApplicationMessageId(String[] expected, ExecutionContext actual) メッセージIDのアサートを行う。voidassertApplicationMessageId(String msg, String[] expected, ExecutionContext actual) メッセージIDのアサートを行う。voidassertApplicationMessageId(String msg, String expectedCommaSeparated, ExecutionContext actual) メッセージIDのアサートを行う。voidassertApplicationMessageId(String expectedCommaSeparated, ExecutionContext actual) メッセージIDのアサートを行う。voidassertEntity(String sheetName, String id, Object actual) voidassertForward(String msg, String expectedUri) フォワード先URIが想定通りであることを表明する。voidassertObjectArrayPropertyEquals(String message, String sheetName, String id, Object[] actual) Object配列に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)を参照。voidassertObjectListPropertyEquals(String message, String sheetName, String id, List<?> actual) Object に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)を参照。voidassertObjectPropertyEquals(String message, String sheetName, String id, Object actual) Object に設定されたプロパティをアサートする。
チェック条件の詳細はAssertion.assertProperties(java.util.Map, Object)を参照。voidassertSqlResultSetEquals(String message, String sheetName, String id, SqlResultSet actual) voidassertSqlRowEquals(String message, String sheetName, String id, SqlRow actual) protected voidassertStatusCode(String message, int expected, HttpResponse response) ステータスコードが想定通りであることを表明する。voidassertTableEquals(String sheetName) voidassertTableEquals(String sheetName, String groupId) voidassertTableEquals(String message, String sheetName, String groupId) protected voidcopyHtmlResourceToDumpDir(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 HttpServerHttpServerのインスタンスを生成する。protected HttpServerHttpServerを生成する。protected voiddeleteHtmlResourceFile(File srcDir, File destDir) ダンプディレクトリのHTMLリソースファイルを削除する。execute(Class<?> testClass, String caseName, HttpRequest req, ExecutionContext ctx) 自動テスト用HTTPサーバを使用して、リクエスト単体テストを実現する。protected HttpResponseexecute(String caseName, HttpRequest req, ExecutionContext ctx) 自動テスト用HTTPサーバを使用して、リクエスト単体テストを実現する。protected StringgetAbsoluteCssUriPrefix(String uri, String replaceAbsolutePath) URI型の絶対パス参照文字列から、URIのプレフィックスを取得する。protected FileHTTPレスポンスボディが出力されたファイルを取得する。protected FileFiltergetFileFilter(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 voidinitializeIfNotYet(HttpTestConfiguration config, File dumpDir, String className) 初回時のみ初期化を実行する。booleanis3XXStatusCode(int statusCode) 300系の HTTP ステータスコードかどうか判定するprotected voidprepareHandlerQueue(List<Handler> handlerQueue) ハンドラキューの準備を行う。static voidキャッシュした HttpServer をリセットする。protected StringrewritePath(String text, String replaceAbsolutePath) 静的リソース内のパスを置き換える。protected voidrewriteResourceFile(HttpTestConfiguration config, File dumpDir, ResourceLocator warBaseLocator) HTMLリソースディレクトリ内のCSSファイルを置換する。protected voidsetDumpFile(ExecutionContext ctx, File file) HTTPレスポンスボディが出力されたファイルを設定する。protected static voidsetHttpHeader(HttpRequest req, HttpTestConfiguration config) HTTPHeaderを設定する。
すでにHttpRequestに設定されている項目は、設定しない。voidsetToken(HttpRequest request, ExecutionContext context, boolean valid) トークンをリクエストパラメータとセッションスコープに設定する。
引数validが真の場合、有効なトークンを設定する。偽の場合はトークンを無効にする。voidDbAccessTestSupport.setUpDb(String)への委譲メソッド。voidvoidsetValidToken(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:
- リクエストパラメータの値
-