package examples.basics;
import static org.junit.Assert.assertEquals;
import static uk.co.acuminous.julez.util.JulezSugar.SCENARIOS;
import static uk.co.acuminous.julez.util.JulezSugar.THREADS;
import org.junit.Test;
import uk.co.acuminous.julez.event.handler.ResultMonitor;
import uk.co.acuminous.julez.runner.ConcurrentScenarioRunner;
import uk.co.acuminous.julez.scenario.Scenario;
import uk.co.acuminous.julez.scenario.ScenarioSource;
import uk.co.acuminous.julez.scenario.limiter.SizeLimiter;
import uk.co.acuminous.julez.scenario.source.ScenarioRepeater;
import uk.co.acuminous.julez.test.PassFailErrorScenario;
public class ScenarioOutcomeTest {
@Test
public void demonstrateRecordingConcurrentScenarioResults() {
ResultMonitor resultMonitor = new ResultMonitor();
Scenario scenario = new PassFailErrorScenario().register(resultMonitor);
ScenarioSource scenarios = new SizeLimiter().limit(new ScenarioRepeater(scenario)).to(200, SCENARIOS);
new ConcurrentScenarioRunner().allocate(10, THREADS).queue(scenarios).go();
assertEquals(129, resultMonitor.getPassCount());
assertEquals(50, resultMonitor.getFailureCount());
assertEquals(21, resultMonitor.getErrorCount());
assertEquals(64, resultMonitor.getPercentage());
}
}