package net.thucydides.core.model; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; import static net.thucydides.core.model.TestResult.*; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; @RunWith(Parameterized.class) public class WhenEvaluatingOverallResults { private List<TestResult> results; private TestResult expectedOverallResult; public WhenEvaluatingOverallResults(List<TestResult> results, TestResult expectedOverallResult) { this.results = results; this.expectedOverallResult = expectedOverallResult; } @Parameters public static Collection<Object[]> testData() { return Arrays.asList(new Object[][] { { Collections.emptyList(), SUCCESS }, { Arrays.asList(SUCCESS), SUCCESS }, { Arrays.asList(SUCCESS, SUCCESS), SUCCESS }, { Arrays.asList(SUCCESS, SUCCESS, SUCCESS), SUCCESS }, { Arrays.asList(SUCCESS, PENDING), PENDING }, { Arrays.asList(SUCCESS, IGNORED), SUCCESS }, { Arrays.asList(SUCCESS, SKIPPED), SUCCESS }, { Arrays.asList(FAILURE), FAILURE }, { Arrays.asList(FAILURE, FAILURE), FAILURE }, { Arrays.asList(FAILURE, SUCCESS), FAILURE }, { Arrays.asList(FAILURE, IGNORED), FAILURE }, { Arrays.asList(FAILURE, PENDING), FAILURE }, { Arrays.asList(IGNORED), IGNORED }, { Arrays.asList(SKIPPED), SKIPPED }, { Arrays.asList(IGNORED, FAILURE,SKIPPED), FAILURE }, { Arrays.asList(IGNORED, IGNORED), IGNORED }, { Arrays.asList(IGNORED, PENDING), PENDING }, { Arrays.asList(PENDING), PENDING }, { Arrays.asList(PENDING, PENDING), PENDING }, { Arrays.asList(ERROR), ERROR }, { Arrays.asList(PENDING,ERROR), ERROR }, { Arrays.asList(IGNORED,ERROR), ERROR }, { Arrays.asList(SKIPPED,ERROR), ERROR }, { Arrays.asList(SUCCESS,ERROR), ERROR }, }); } @Test public void should_produce_correct_overall_result_from_a_list_of_step_results() { TestResultList overallResult = TestResultList.of(results); assertThat(overallResult.getOverallResult(), is(expectedOverallResult)); } }