
org.unidal.eunit.testfwk.junit.EunitJUnitTestPlanBuilder Maven / Gradle / Ivy
package org.unidal.eunit.testfwk.junit;
import org.unidal.eunit.model.entity.EunitClass;
import org.unidal.eunit.model.entity.EunitMethod;
import org.unidal.eunit.model.transform.BaseVisitor;
import org.unidal.eunit.testfwk.EunitTaskType;
import org.unidal.eunit.testfwk.spi.IClassContext;
import org.unidal.eunit.testfwk.spi.ITestCase;
import org.unidal.eunit.testfwk.spi.ITestCaseBuilder;
import org.unidal.eunit.testfwk.spi.ITestPlan;
import org.unidal.eunit.testfwk.spi.ITestPlanBuilder;
import org.unidal.eunit.testfwk.spi.Registry;
import org.unidal.eunit.testfwk.spi.task.Task;
public class EunitJUnitTestPlanBuilder extends BaseVisitor implements ITestPlanBuilder {
private IClassContext m_ctx;
private ITestPlan m_plan;
@Override
@SuppressWarnings("unchecked")
public void build(IClassContext ctx) {
m_plan = (ITestPlan) ctx.getTestPlan();
m_ctx = ctx;
ctx.forEunit().getEunitClass().accept(this);
m_plan.executeDeferredActions();
}
@Override
public void visitEunitClass(EunitClass eunitClass) {
m_plan.addBeforeClass(new Task(EunitTaskType.BEFORE_CLASS, null));
super.visitEunitClass(eunitClass);
m_plan.addAfterClass(new Task(EunitTaskType.AFTER_CLASS, null));
}
@Override
public void visitEunitMethod(EunitMethod eunitMethod) {
if (eunitMethod.getBeforeAfter() != null) {
if (!eunitMethod.isStatic()) {
if (eunitMethod.isBeforeAfter()) { // @Before
m_plan.addBefore(new Task(EunitTaskType.METHOD, eunitMethod));
} else { // @After
m_plan.addAfter(new Task(EunitTaskType.METHOD, eunitMethod));
}
} else {
if (eunitMethod.isBeforeAfter()) { // @BeforeClass
m_plan.addBeforeClass(new Task(EunitTaskType.METHOD, eunitMethod));
} else { // @AfterClass
m_plan.addAfterClass(new Task(EunitTaskType.METHOD, eunitMethod));
}
}
} else if (eunitMethod.isTest()) { // @Test
super.visitEunitMethod(eunitMethod);
Registry registry = m_ctx.getRegistry();
ITestCase testCase;
// if (!eunitMethod.isIgnored()) {
@SuppressWarnings("unchecked")
ITestCaseBuilder builder = (ITestCaseBuilder) registry.getTestCaseBuilder();
testCase = builder.build(m_ctx, eunitMethod);
// }
m_plan.addTestCase(eunitMethod, testCase);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy