Package org.springmodules.validation.bean.context.aop

Source Code of org.springmodules.validation.bean.context.aop.AbstractValidationContextInterceptorTests

package org.springmodules.validation.bean.context.aop;
/**
*
* @author Uri Boness
*/

import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Method;

import junit.framework.TestCase;
import org.aopalliance.intercept.MethodInvocation;
import org.springmodules.validation.bean.context.DefaultValidationContext;
import org.springmodules.validation.bean.context.ValidationContextHolder;
import org.springmodules.validation.util.Switch;

public class AbstractValidationContextInterceptorTests extends TestCase {

    public void testInvoke() throws Throwable {
        AbstractValidationContextInterceptor interceptor = new AbstractValidationContextInterceptor() {
            protected String[] getValidationContextTokens(MethodInvocation methodInvocation) {
                return new String[] { "ctx1", "ctx2" };
            }
        };

        final Switch methodCalledSwitch = new Switch();

        MethodInvocation invocation = new MethodInvocation() {
            public Method getMethod() {
                return null;
            }

            public Object[] getArguments() {
                return new Object[0];
            }

            public Object proceed() throws Throwable {
                methodCalledSwitch.turnOn();
                assertNotNull(ValidationContextHolder.getValidationContext());
                assertTrue(DefaultValidationContext.class.isInstance(ValidationContextHolder.getValidationContext()));
                DefaultValidationContext context = (DefaultValidationContext)ValidationContextHolder.getValidationContext();
                String[] tokens = context.getTokens();
                assertNotNull(tokens);
                assertEquals(2, tokens.length);
                assertEquals("ctx1", tokens[0]);
                assertEquals("ctx2", tokens[1]);
                return "result";
            }

            public Object getThis() {
                return null;
            }

            public AccessibleObject getStaticPart() {
                return null;
            }
        };

        Object result = interceptor.invoke(invocation);

        assertTrue(methodCalledSwitch.isOn());
        assertEquals("result", result);
    }

}
TOP

Related Classes of org.springmodules.validation.bean.context.aop.AbstractValidationContextInterceptorTests

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.