package org.easyb.listener; import java.util.List; import org.easyb.BehaviorStep; import org.easyb.domain.Behavior; import org.easyb.util.BehaviorStepType; public class ResultsAmalgamator { protected BehaviorStep genesisStep = new BehaviorStep(BehaviorStepType.GENESIS, "easyb-genesis"); protected ResultsReporter results; // used in tests public ResultsAmalgamator(Behavior... behaviors) { this(java.util.Arrays.asList(behaviors)); } public ResultsAmalgamator(List<Behavior> behaviors) { for( Behavior behavior : behaviors ) { ResultsCollector result = behavior.getBroadcastListener().getResultsCollector(); // steal the children of the genesis steps for( BehaviorStep step : result.getGenesisStep().getChildSteps() ) { step.setContext(behavior.getBinding().getVariables()); genesisStep.addChildStep( step ); } } results = new ResultsReporter(genesisStep); } public boolean failuresDetected() { return ( getResultsReporter().getFailedBehaviorCount() > 0 ); } public ResultsReporter getResultsReporter() { return results; } }