Package com.lewisd.maven.lint.rules

Source Code of com.lewisd.maven.lint.rules.AbstractRuleIT

package com.lewisd.maven.lint.rules;

import com.lewisd.maven.lint.rules.basic.ViolationAssert;
import org.apache.maven.monitor.logging.DefaultLog;
import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
import org.codehaus.plexus.logging.console.ConsoleLogger;
import org.junit.Before;
import org.junit.Rule;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.io.ClassPathResource;

import static org.mockito.Mockito.mock;

public abstract class AbstractRuleIT<T extends AbstractRule> {
    private final static DefaultLog LOG = new DefaultLog(new ConsoleLogger(1, "test"));
    private final static String CONFIG_LOCATION = "config/maven_lint.xml";

    private GenericApplicationContext applicationContext;

    @Rule
    public RuleInvokerWithPom invokerWithPom = new RuleInvokerWithPom();

    @Before
    public void beforeEachTest() {
        applicationContext = new GenericApplicationContext();
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        ClassPathResource classPathResource = new ClassPathResource(CONFIG_LOCATION, classLoader);
        XmlBeanDefinitionReader xmlBeanDefinitionReader = new XmlBeanDefinitionReader(applicationContext);
        xmlBeanDefinitionReader.loadBeanDefinitions(classPathResource);

        applicationContext.getBeanFactory().registerSingleton("LOG", LOG);
        applicationContext.getBeanFactory().registerResolvableDependency(PluginParameterExpressionEvaluator.class, mock(PluginParameterExpressionEvaluator.class));
        applicationContext.refresh();
    }

    public void invokeRule() {
        invokerWithPom.getRuleInvoker().invokeRule(getRule(), invokerWithPom.getResultCollector());
    }

    protected final T getRule(Class<T> ruleClazz) {
        return (T) applicationContext.getBean(ruleClazz);
    }

    protected ViolationAssert violationAssert() {
        return new ViolationAssert(invokerWithPom.getResultCollector());
    }

    public abstract T getRule();
}
TOP

Related Classes of com.lewisd.maven.lint.rules.AbstractRuleIT

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.