Package nablarch.test.core.http
Class HttpRequestTestSupportHandler
java.lang.Object
nablarch.test.core.http.HttpRequestTestSupportHandler
- All Implemented Interfaces:
nablarch.fw.Handler<nablarch.fw.web.HttpRequest,
,nablarch.fw.web.HttpResponse> nablarch.fw.web.HttpRequestHandler
@Published
public class HttpRequestTestSupportHandler
extends Object
implements nablarch.fw.web.HttpRequestHandler
HTTPリクエストのテスト時に先頭の設定するリクエストハンドラ。
本クラスでは、以下の処理を行う。
本クラスでは、以下の処理を行う。
- テストクラスから指定されたExecutionContextを、 handleメソッドの引数のExecutionContextへ移送する。
- ExecutionContext#handleNext呼び出し後のExecutionContextの情報を テストクラスから指定されたExecutionContextへ移送する。
- ハンドラキューの処理結果となるHttpResponseオブジェクトのステータスコードを アサートできるようにスタティック変数として保持しておく。
HttpRequestTestSupport.execute(Class, String, HttpRequest, ExecutionContext)
から
nablarch.fw.web.HttpServer#handle(HttpRequest, ExecutionContext)が呼ばれるが、
ここで引数にExecutionContext
を渡しても使用されない。
(nablarch.fw.Handler#handle(Object, nablarch.fw.ExecutionContext)を実装する為、
引数として用意されているだけで、実際には使用しない)
実際には内蔵サーバ内で新たに生成されたExecutionContext
が使用される。
テストクラス側で生成したExecutionContext
の情報を使用してテストを行う為に、
本ハンドラにて移送を行う。
また、コンテンツパスを指定してレスポンスを行った場合、
内蔵サーバからは一律ステータスコード200が返却される。
(JSP等のリソースに対するサーブレットフォーワードは全てこれに含まれる。)
このため、HttpResponseオブジェクトのステータスコードと、クライアントに対する
実際のレスポンスコードが一致しなくなるので、本ハンドラにHttpResponseオブジェクトのステータス
コードを保持しておき、後続のアサート処理で参照する。
ただし、リダイレクトの場合はServletAPI(HttpServletResponse.sendRedirect(String)
)
を使用しているため、HttpResponse
にはリダイレクトのステータスコードは設定されない。
(ステータスコードの設定をコンテナに任せているため)
従って、リダイレクトの場合のステータスコードは、本クラスではなく、
コンテナが返却するレスポンスから取得する必要がある。- See Also:
-
HttpResponseHandler.setStatusCode(HttpResponse, nablarch.fw.web.servlet.ServletExecutionContext)
HttpRequestTestSupport.assertStatusCode(String, int, HttpResponse)
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
CountDownLatch
のキー。 サーバ側の処理完了を待つためのラッチを格納・取得する用途に使用する。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionnablarch.fw.web.HttpResponse
handle
(nablarch.fw.web.HttpRequest request, nablarch.fw.ExecutionContext context) ExecutionContext
の移送を行う。void
setContext
(nablarch.fw.ExecutionContext context) ExecutionContext
を設定する。void
setMultipart
(nablarch.fw.web.HttpRequest req) マルチパート情報を設定する。
-
Field Details
-
NABLARCH_JETTY_CONNECTOR_LATCH
CountDownLatch
のキー。 サーバ側の処理完了を待つためのラッチを格納・取得する用途に使用する。- See Also:
-
-
Constructor Details
-
HttpRequestTestSupportHandler
コンストラクタ。- Parameters:
config
- HttpTestConfiguration
-
-
Method Details
-
handle
public nablarch.fw.web.HttpResponse handle(nablarch.fw.web.HttpRequest request, nablarch.fw.ExecutionContext context) ExecutionContext
の移送を行う。- Specified by:
handle
in interfacenablarch.fw.Handler<nablarch.fw.web.HttpRequest,
nablarch.fw.web.HttpResponse> - Specified by:
handle
in interfacenablarch.fw.web.HttpRequestHandler
- Parameters:
context
- nablarch.fw.web.HttpServerで生成された実際のExecutionContext
-
setContext
public void setContext(nablarch.fw.ExecutionContext context) ExecutionContext
を設定する。- Parameters:
context
- ExecutionContext
-
setMultipart
public void setMultipart(nablarch.fw.web.HttpRequest req) マルチパート情報を設定する。- Parameters:
req
- 設定元のリクエスト
-