package org.test4j.spec.scenario; import java.util.ArrayList; import java.util.List; import org.test4j.spec.inner.IScenario; import org.test4j.spec.inner.IScenarioStep; /** * 可执行的场景定义 * * @author davey.wu 2014年6月18日 下午7:05:33 */ public class TestScenario implements IScenario { private List<IScenarioStep> steps; private int index; private IScenario currScenario; public TestScenario(IScenario before, IScenario curr, IScenario after) { if (curr == null) { throw new RuntimeException("the executed scenario can't be null!"); } currScenario = curr; this.setIndex(curr.getIndex()); this.steps = new ArrayList<IScenarioStep>(); if (before != null) { this.steps.addAll(before.getSteps()); } this.steps.addAll(curr.getSteps()); if (after != null) { this.steps.addAll(after.getSteps()); } } @Override public List<IScenarioStep> getSteps() { return steps; } @Override public void validate() throws Throwable { currScenario.validate(); } @Override public String getName() { return this.currScenario.getName(); } @Override public int getIndex() { return index; } @Override public void setIndex(int index) { this.index = index; } @Override public String toString() { return currScenario.toString(); } }