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 org.apache.cxf.jca.cxf.CXFInvocationHandler;
import org.apache.cxf.jca.cxf.CXFInvocationHandlerData;
import org.junit.Before;
import org.junit.Test;

public class InvokingInvocationHandlerTest
    extends AbstractInvocationHandlerTest {

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

    public InvokingInvocationHandlerTest() {
        super();
    }
    @Before
    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
     */
    @Test
    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);
    }

    @Test
    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;
    }

   
}
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.