package uk.co.acuminous.julez.event.handler; import java.util.concurrent.atomic.AtomicInteger; import uk.co.acuminous.julez.event.Event; import uk.co.acuminous.julez.scenario.ScenarioEvent; public class ResultMonitor implements EventHandler { private AtomicInteger passCount = new AtomicInteger(); private AtomicInteger failureCount = new AtomicInteger(); private AtomicInteger errorCount = new AtomicInteger(); @Override public void onEvent(Event event) { if (ScenarioEvent.PASS.equals(event.getType())) { passCount.incrementAndGet(); } else if (ScenarioEvent.FAIL.equals(event.getType())) { failureCount.incrementAndGet(); } else if (ScenarioEvent.ERROR.equals(event.getType())) { errorCount.incrementAndGet(); } } public int getPassCount() { return passCount.get(); } public int getFailureCount() { return failureCount.get(); } public int getErrorCount() { return errorCount.get(); } public int getPercentage() { int successful = getPassCount(); int unsuccessful = getFailureCount() + getErrorCount(); int total = successful + unsuccessful; return total > 0 ? (successful * 100) / total : 0; } }