private void addChildSteps(StepToken parentToken, Matcher macroMatcher, List<StepMacro> macros, int depth) { for (StepToken s : steps) { String action = s.getAction(); String type = s.getType(); action = replaceVariablesInMacroStep(macroMatcher, action); action = replaceGroupsInMacroStep(macroMatcher, action); //having replaced any capture groups, create the child step StepToken childToken = StepToken.createStep(type, action); //match the new child step against the list of StepMacros recursively boolean alreadyMatched = false; for ( StepMacro stepMacro : macros) { alreadyMatched = stepMacro.doProcessStep(childToken, macros, depth + 1, alreadyMatched); } parentToken.addChildStep(childToken); } }
private void createFeatureOne() { ScenarioToken scenarioToken = new ScenarioToken(); scenarioToken.setName("Test Scenario"); StepToken stepOne = scenarioToken.addStep(StepToken.createStep("If", "I create a step")); stepOne.setEndState(StepEndState.PASSED); StepToken stepTwo = scenarioToken.addStep(StepToken.createStep("If", "I create a second step")); stepTwo.setEndState(StepEndState.FAILED); StepToken stepChild = StepToken.createStep("If", "I create a step macro child step"); stepChild.setEndState(StepEndState.FAILED); stepTwo.addChildStep(stepChild); StepToken stepGrandchild = StepToken.createStep("If", "I create a step grandchild"); stepGrandchild.setEndState(StepEndState.FAILED); stepGrandchild.setMessage("Failed due to a horrific and unforseen cataclysm"); stepChild.addChildStep(stepGrandchild); StepToken peerStep = StepToken.createStep("If", "I create a peer step which was skipped"); peerStep.setEndState(StepEndState.SKIPPED); stepChild.addChildStep(peerStep); FeatureToken featureToken = new FeatureToken(); featureToken.setName("Feature One"); featureToken.addScenario(scenarioToken); listOfFeatures.add(featureToken); }
@Override public StepToken unmarshal(StepTokenBean v) throws Exception { StepToken stepToken = StepToken.createStep(v.getType(), v.getAction()); stepToken.setEndState(v.getEndState()); stepToken.setMessage(v.getMessage()); stepToken.setException(v.getException()); stepToken.setStackTrace(v.getStackTrace()); stepToken.setTimeTaken(v.getTimeTaken()); if ( v.getErrorDetails() != null ) { stepToken.setErrorDetails(v.getErrorDetails()); } for ( StepToken c : v.getChildSteps()) { stepToken.addChildStep(c); } return stepToken; }
@Before public void doBefore() { scenarioToken = new ScenarioToken(); scenarioToken.setName("Test Scenario"); stepOne = scenarioToken.addStep(StepToken.createStep("If", "I create a step")); stepTwo = scenarioToken.addStep(StepToken.createStep("If", "I create a second step")); stepThree = StepToken.createStep("If", "I create a step macro child step"); stepTwo.addChildStep(stepThree); scenarioTwo = new ScenarioToken(); stepFour = scenarioTwo.addStep(StepToken.createStep("If", "I add a step to scenario 2")); featureToken = new FeatureToken(); featureToken.addScenario(scenarioToken); featureToken.addScenario(scenarioTwo); featureTwo = new FeatureToken(); executionToken = new ExecutionToken("My test suite name"); testSuite = new TestSuite(executionToken, Arrays.asList(featureToken, featureTwo)); }