package org.easyb.junit;
import org.easyb.BehaviorStep;
import org.easyb.domain.Behavior;
import org.easyb.listener.ExecutionListener;
import org.easyb.result.ReportingTag;
import org.easyb.result.Result;
import java.util.ArrayList;
import java.util.List;
public class JunitExecutionListenerRegistry implements ExecutionListener {
private List<ExecutionListener> listeners = new ArrayList<ExecutionListener>();
public void startBehavior(Behavior behavior) {
for (ExecutionListener listener : listeners) {
listener.startBehavior(behavior);
}
}
public void stopBehavior(BehaviorStep step, Behavior behavior) {
for (ExecutionListener listener : listeners) {
listener.stopBehavior(step, behavior);
}
}
public void tag(ReportingTag tag) {
for (ExecutionListener listener : listeners) {
listener.tag(tag);
}
}
public void startStep(BehaviorStep step) {
for (ExecutionListener listener : listeners) {
listener.startStep(step);
}
}
public void describeStep(String description) {
for (ExecutionListener listener : listeners) {
listener.describeStep(description);
}
}
public void completeTesting() {
for (ExecutionListener listener : listeners) {
listener.completeTesting();
}
}
public void stopStep() {
for (ExecutionListener listener : listeners) {
listener.stopStep();
}
}
public void gotResult(Result result) {
for (ExecutionListener listener : listeners) {
listener.gotResult(result);
}
}
public void registerListener(ExecutionListener listener) {
if (listener != null) {
listeners.add(listener);
}
}
public void unregisterListener(ExecutionListener listener) {
listeners.remove(listener);
}
}