All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.test4j.mock.SpringMock Maven / Gradle / Ivy

There is a newer version: 2.7.0
Show newest version
package org.test4j.mock;

import mockit.Invocation;
import mockit.Mock;
import mockit.MockUp;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.support.AbstractBeanFactory;
import org.test4j.module.core.utility.MessageHelper;
import org.test4j.module.database.sql.DataSourceCreatorFactory;
import org.test4j.tools.commons.ConfigHelper;

/**
 * @author darui.wu
 */
public class SpringMock extends MockUp {
    static boolean hasMock = false;

    public SpringMock() {
        hasMock = true;
    }

    @Mock
    public  T doGetBean(Invocation it,
                           String name,
                           Class requiredType,
                           final Object[] args,
                           boolean typeCheckOnly)
            throws BeansException {
        if (this.isDataSource(name, requiredType)) {
            MessageHelper.info("===========AbstractBeanFactoryMock===========");
            return (T) DataSourceCreatorFactory.create(name);
        } else {
            return it.proceed(name, requiredType, args, typeCheckOnly);
        }
    }

    private  boolean isDataSource(String name, Class requiredType) {
        if (DataSourceCreatorFactory.isDataSource(name)) {
            return true;
        } else {
            return ConfigHelper.getDataSourceList().contains(name);
            //return requiredType != null && requiredType.isAssignableFrom(DataSource.class);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy