Package org.apache.cxf.jca.cxf.handlers

Source Code of org.apache.cxf.jca.cxf.handlers.InvokingInvocationHandlerTest

/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.cxf.jca.cxf.handlers;

import java.lang.reflect.Proxy;

import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;

import org.apache.cxf.jca.cxf.CXFInvocationHandler;
import org.apache.cxf.jca.cxf.CXFInvocationHandlerData;

public class InvokingInvocationHandlerTest
    extends AbstractInvocationHandlerTest {

    TestInterface test;
    TestInterface test2;
    TestTarget target;
    CXFInvocationHandler handler;
    CXFInvocationHandlerData data;

    public InvokingInvocationHandlerTest(String name) {
        super(name);
    }
   
    public void setUp() {
        super.setUp();
        target = new TestTarget();
        data = new CXFInvocationHandlerDataImpl();
        data.setTarget(target);
        handler = new InvokingInvocationHandler(data);
        Class[] interfaces = {TestInterface.class};

        test = (TestInterface)Proxy.newProxyInstance(TestInterface.class.getClassLoader(), interfaces,
                                                     handler);
        handler.getData().setTarget(target);

        CXFInvocationHandlerData data2 = new CXFInvocationHandlerDataImpl();
        CXFInvocationHandler handler2 = new InvokingInvocationHandler(data2);
        test2 = (TestInterface)Proxy.newProxyInstance(TestInterface.class.getClassLoader(), interfaces,
                                                      handler2);
        handler2.getData().setTarget(target);
    }

    /**
     * override this test - this handler is alway the last in the chain and is
     * responsible for delegating the invocation to the target object
     */
    public void testHandlerInvokesNext() throws Throwable {
        assertTrue("target method  must not have be called", !target.methodInvoked);
        handler.invoke(target, testMethod, new Object[0]);
        assertTrue("target method must be called", target.methodInvoked);
    }

    public void testInvocationThroughProxy() throws IllegalArgumentException {

        assertTrue("target object must no have been invoked", !target.methodInvoked);
        test.testMethod();
        assertTrue("target object must be invoked", target.methodInvoked);
    }

    protected CXFInvocationHandler getHandler() {

        return handler;
    }

    public static Test suite() {
        return new TestSuite(InvokingInvocationHandlerTest.class);
    }

    public static void main(String[] args) {
        TestRunner.main(new String[] {InvokingInvocationHandlerTest.class.getName()});
    }
}
TOP

Related Classes of org.apache.cxf.jca.cxf.handlers.InvokingInvocationHandlerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.