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