Search in sources :

Example 1 with TransactionAnnoClass

use of com.ctrip.platform.dal.dao.annotation.autowire.TransactionAnnoClass in project dal by ctripcorp.

the class DalAnnotationValidatorTest method testValidateRawBean.

@Test
public void testValidateRawBean() throws Exception {
    DalAnnotationValidator test = new DalAnnotationValidator();
    try {
        TransactionAnnoClass bean = new TransactionAnnoClass();
        test.postProcessAfterInitialization(bean, "beanName");
        fail();
    } catch (BeanInstantiationException e) {
        assertTrue(e.getMessage().contains(DalAnnotationValidator.VALIDATION_MSG));
    }
}
Also used : TransactionAnnoClass(com.ctrip.platform.dal.dao.annotation.autowire.TransactionAnnoClass) DalAnnotationValidator(com.ctrip.platform.dal.dao.client.DalAnnotationValidator) BeanInstantiationException(org.springframework.beans.BeanInstantiationException) Test(org.junit.Test)

Example 2 with TransactionAnnoClass

use of com.ctrip.platform.dal.dao.annotation.autowire.TransactionAnnoClass in project dal by ctripcorp.

the class DalAnnotationValidatorTest method testValidateFactoryBeanProxyAgain.

@Test
public void testValidateFactoryBeanProxyAgain() throws Exception {
    DalAnnotationValidator test = new DalAnnotationValidator();
    try {
        TransactionAnnoClass bean = DalTransactionManager.create(TransactionAnnoClass.class);
        // Try to wrap it again
        Class targetClass = bean.getClass();
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(targetClass);
        enhancer.setClassLoader(targetClass.getClassLoader());
        enhancer.setCallbackFilter(new CallbackFilter() {

            @Override
            public int accept(Method method) {
                return method.getName().startsWith("per") ? 0 : 1;
            }
        });
        Callback[] callbacks = new Callback[] { new MethodInterceptor() {

            @Override
            public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
                return proxy.invoke(obj, args);
            }
        }, NoOp.INSTANCE };
        enhancer.setCallbacks(callbacks);
        bean = (TransactionAnnoClass) enhancer.create();
        test.postProcessAfterInitialization(bean, "beanName");
    } catch (BeansException e) {
        fail();
    }
}
Also used : Method(java.lang.reflect.Method) TransactionAnnoClass(com.ctrip.platform.dal.dao.annotation.autowire.TransactionAnnoClass) DalAnnotationValidator(com.ctrip.platform.dal.dao.client.DalAnnotationValidator) TransactionAnnoClass(com.ctrip.platform.dal.dao.annotation.autowire.TransactionAnnoClass) BeansException(org.springframework.beans.BeansException) Test(org.junit.Test)

Example 3 with TransactionAnnoClass

use of com.ctrip.platform.dal.dao.annotation.autowire.TransactionAnnoClass in project dal by ctripcorp.

the class DalAnnotationValidatorTest method testValidateFactoryBean.

@Test
public void testValidateFactoryBean() throws Exception {
    DalAnnotationValidator test = new DalAnnotationValidator();
    try {
        TransactionAnnoClass bean = DalTransactionManager.create(TransactionAnnoClass.class);
        test.postProcessAfterInitialization(bean, "beanName");
    } catch (BeansException e) {
        fail();
    }
}
Also used : TransactionAnnoClass(com.ctrip.platform.dal.dao.annotation.autowire.TransactionAnnoClass) DalAnnotationValidator(com.ctrip.platform.dal.dao.client.DalAnnotationValidator) BeansException(org.springframework.beans.BeansException) Test(org.junit.Test)

Aggregations

TransactionAnnoClass (com.ctrip.platform.dal.dao.annotation.autowire.TransactionAnnoClass)3 DalAnnotationValidator (com.ctrip.platform.dal.dao.client.DalAnnotationValidator)3 Test (org.junit.Test)3 BeansException (org.springframework.beans.BeansException)2 Method (java.lang.reflect.Method)1 BeanInstantiationException (org.springframework.beans.BeanInstantiationException)1