use of jp.ossc.nimbus.service.aop.ServletFilterInvocationContext in project nimbus by nimbus-org.
the class HttpServletResponseDeflateInterceptorServiceTest method testInvokeFilterNoDef.
/**
* レスポンス圧縮処理を行わずに、次のインターセプタを呼び出すテスト。
* <p>
* 条件:
* <ul>
* <li>HttpServletResponseDeflateInterceptorServiceインスタンスを生成する</li>
* <li>ServletRequest/Responseのモックを生成</li>
* <li>ServletRequestのInputStreamパラメータに変換元XMLストリームを設定</li>
* <li>上記インスタンスを使ってコンテキストインスタンスを生成し、<BR>
* invokeFilter(context, chain)を実行する</li>
* </ul>
* 確認:
* <ul>
* <li>HttpServletRequestに設定されている変換元のXMLストリームが正しく変換することを確認する</li>
* </ul>
*/
public void testInvokeFilterNoDef() {
try {
if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/aop/interceptor/servlet/service-definitionTestdef.xml")) {
System.exit(-1);
}
final HttpServletResponseDeflateInterceptorService ic = (HttpServletResponseDeflateInterceptorService) ServiceManagerFactory.getServiceObject("HttpServletResponseDeflateInterceptor");
ic.startService();
// ServletRequestのInputStreamパラメータに変換元XMLストリームを設定
String inxml = "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n" + "<dataSet><schema><header name=\"TestHeader\">" + ":name,java.lang.String,,,\n:password,java.lang.String,,," + "</header></schema><header name=\"TestHeader\">" + "<name>TestName</name><password>TestPassWord</password></header></dataSet>";
// ServletinputStreamのセット
MockServletInputStream is = new MockServletInputStream(inxml.getBytes());
// ServletRequest/Responseのモックを生成
MockHttpServletRequest2 req = new MockHttpServletRequest2(is);
ServletResponse res = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain();
// エンコーディングセット
req.setCharacterEncoding("Shift_JIS");
// コンテキスト作成
ServletFilterInvocationContext context = new ServletFilterInvocationContext((ServletRequest) req, res, (javax.servlet.FilterChain) chain);
// インタセプタインスタンス生成
DefaultInterceptorChain ichain = new DefaultInterceptorChain();
// 入力ストリームは非圧縮
ic.invokeFilter(context, (InterceptorChain) ichain);
} catch (Throwable e) {
e.printStackTrace();
fail("例外発生");
} finally {
ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/aop/interceptor/servlet/service-definitionTestdef.xml");
}
}
use of jp.ossc.nimbus.service.aop.ServletFilterInvocationContext in project nimbus by nimbus-org.
the class HttpServletResponseDeflateInterceptorServiceTest method testInvokeFilter.
/**
* レスポンスを圧縮処理を行うラッパーでラップして、次のインターセプタを呼び出すテスト。
* <p>
* 条件:
* <ul>
* <li>HttpServletResponseDeflateInterceptorServiceインスタンスを生成する</li>
* <li>ServletRequest/Responseのモックを生成</li>
* <li>ServletRequestのInputStreamパラメータに変換元XMLストリームを設定</li>
* <li>上記インスタンスを使ってコンテキストインスタンスを生成し、<BR>
* invokeFilter(context, chain)を実行する</li>
* </ul>
* 確認:
* <ul>
* <li>HttpServletRequestに設定されている変換元のXMLストリームが正しく変換することを確認する</li>
* </ul>
*/
public void testInvokeFilter() {
try {
if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/aop/interceptor/servlet/service-definitionTestdef.xml")) {
System.exit(-1);
}
final HttpServletResponseDeflateInterceptorService ic = (HttpServletResponseDeflateInterceptorService) ServiceManagerFactory.getServiceObject("HttpServletResponseDeflateInterceptor");
ic.startService();
// ServletRequestのInputStreamパラメータに変換元XMLストリームを設定
String inxml = "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n" + "<dataSet><schema><header name=\"TestHeader\">" + ":name,java.lang.String,,,\n:password,java.lang.String,,," + "</header></schema><header name=\"TestHeader\">" + "<name>TestName</name><password>TestPassWord</password></header></dataSet>";
// ServletinputStreamのセット
MockServletInputStream is = new MockServletInputStream(inxml.getBytes());
// ServletRequest/Responseのモックを生成
MockHttpServletRequest req = new MockHttpServletRequest(is);
ServletResponse res = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain();
// エンコーディングセット
req.setCharacterEncoding("Shift_JIS");
// コンテキスト作成
ServletFilterInvocationContext context = new ServletFilterInvocationContext((ServletRequest) req, res, (javax.servlet.FilterChain) chain);
// インタセプタインスタンス生成
DefaultInterceptorChain ichain = new DefaultInterceptorChain();
// 入力ストリームは非圧縮
ic.invokeFilter(context, (InterceptorChain) ichain);
} catch (Throwable e) {
e.printStackTrace();
fail("例外発生");
} finally {
ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/aop/interceptor/servlet/service-definitionTestdef.xml");
}
}
use of jp.ossc.nimbus.service.aop.ServletFilterInvocationContext in project nimbus by nimbus-org.
the class StreamExchangeInterceptorServiceTest method testInvokeFilter.
/**
* サービス開始、終了するテスト。
* <p>
* 条件:
* <ul>
* <li>コンバータのサービスを定義していない定義ファイルをロードしてサービスを開始する</li>
* </ul>
* 確認:
* <ul>
* <li>サービスの開始に失敗する。例外IllegalArgumentExceptionが発生することを確認する</li>
* </ul>
*/
// public void testStartServiceInvalid() {
// try {
// if (!ServiceManagerFactory
// .loadManager("jp/ossc/nimbus/service/aop/interceptor/servlet/service-definition_Invalid.xml")) {
// System.exit(-1);
// }
// final StreamExchangeInterceptorService ic
// = (StreamExchangeInterceptorService) ServiceManagerFactory
// .getServiceObject("StreamExchangeInterceptor");
// ic.startService();
// fail("例外が発生しないためテスト失敗 ");
//
// } catch (IllegalArgumentException e) {
// } catch (Exception e) {
// } finally {
// ServiceManagerFactory
// .unloadManager("jp/ossc/nimbus/service/aop/interceptor/servlet/service-definition_Invalid.xml");
// }
// }
/**
* Converterを使ってストリームと特定オブジェクトの交換を行うテスト。
* <p>
* 条件:
* <ul>
* <li>次のサービスを定義した定義ファイルをロードしてサービスを開始する</li>
* <li>requestStreamConverterService</li>
* <li>responseStreamConverterService</li>
* <li>ServletRequest/Responseのモックを生成</li>
* <li>ServletRequestのInputStreamパラメータに変換元XMLストリームを設定</li>
* <li>上記インスタンスを使ってコンテキストインスタンスを生成し、<BR>
* invokeFilter(context, chain)を実行する</li>
* </ul>
* 確認:
* <ul>
* <li>HttpServletRequestに設定されている変換元のXMLストリームが正しく変換することを確認する</li>
* </ul>
*/
public void testInvokeFilter() {
try {
if (!ServiceManagerFactory.loadManager("jp/ossc/nimbus/service/aop/interceptor/servlet/service-definitionTest.xml")) {
System.exit(-1);
}
final StreamExchangeInterceptorService ic = (StreamExchangeInterceptorService) ServiceManagerFactory.getServiceObject("StreamExchangeInterceptor");
ic.startService();
// ServletRequestのInputStreamパラメータに変換元XMLストリームを設定
String inxml = "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n" + "<dataSet><schema><header name=\"TestHeader\">" + ":name,java.lang.String,,,\n:password,java.lang.String,,," + "</header></schema><header name=\"TestHeader\">" + "<name>TestName</name><password>TestPassWord</password></header></dataSet>";
// ServletinputStreamのセット
MockServletInputStream is = new MockServletInputStream(inxml.getBytes());
// ServletRequest/Responseのモックを生成
MockHttpServletRequest req = new MockHttpServletRequest(is);
ServletResponse res = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain();
// エンコーディングセット
req.setCharacterEncoding("Shift_JIS");
// コンテキスト作成
ServletFilterInvocationContext context = new ServletFilterInvocationContext((ServletRequest) req, res, (javax.servlet.FilterChain) chain);
// インタセプタインスタンス生成
DefaultInterceptorChain ichain = new DefaultInterceptorChain();
// 入力ストリームは非圧縮
ic.setRequestStreamInflate(false);
ic.invokeFilter(context, (InterceptorChain) ichain);
// 変換後のデータ検証
DataSet ds = (DataSet) req.getAttribute(ic.requestObjectAttributeName);
assertEquals("TestName", ds.getHeader("TestHeader").getProperty("name"));
assertEquals("TestPassWord", ds.getHeader("TestHeader").getProperty("password"));
ic.stopService();
} catch (Throwable e) {
e.printStackTrace();
fail("例外発生");
} finally {
ServiceManagerFactory.unloadManager("jp/ossc/nimbus/service/aop/interceptor/servlet/service-definitionTest.xml");
}
}
Aggregations