Search in sources :

Example 1 with ServletFilterInvocationContext

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");
    }
}
Also used : ServletResponse(javax.servlet.ServletResponse) ServletFilterInvocationContext(jp.ossc.nimbus.service.aop.ServletFilterInvocationContext) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain)

Example 2 with ServletFilterInvocationContext

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");
    }
}
Also used : ServletResponse(javax.servlet.ServletResponse) ServletFilterInvocationContext(jp.ossc.nimbus.service.aop.ServletFilterInvocationContext) DefaultInterceptorChain(jp.ossc.nimbus.service.aop.DefaultInterceptorChain)

Example 3 with ServletFilterInvocationContext

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");
    }
}
Also used : javax.servlet(javax.servlet) ServletFilterInvocationContext(jp.ossc.nimbus.service.aop.ServletFilterInvocationContext)

Aggregations

ServletFilterInvocationContext (jp.ossc.nimbus.service.aop.ServletFilterInvocationContext)3 ServletResponse (javax.servlet.ServletResponse)2 DefaultInterceptorChain (jp.ossc.nimbus.service.aop.DefaultInterceptorChain)2 javax.servlet (javax.servlet)1