package me.atam.atam4jdomain;
import nl.jqno.equalsverifier.EqualsVerifier;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class TestsRunResultTest {
@Test
public void givenTestRunResultCreatedWithOnlyPassingTests_whenGetStatusCalled_thenALLOKStatusReturned(){
//given
List<IndividualTestResult> listOfPassingTests = getIndividualTestResults(new IndividualTestResult("com.blah", "method", "default", true), new IndividualTestResult("com.blah", "method2", "default", true));
//when
TestsRunResult testsRunResult = new TestsRunResult(listOfPassingTests);
//then
assertThat(testsRunResult.getStatus(), is(TestsRunResult.Status.ALL_OK));
assertThat(testsRunResult.getTests().size(), is(2));
}
@Test
public void givenTestRunResultCreatedWithPassingAndFailingTests_whenGetStatusCalled_thenFailuresStatusReturned(){
//given
List<IndividualTestResult> listOfPassingAndFailingTests = getIndividualTestResults(new IndividualTestResult("com.blah", "method", "default", false), new IndividualTestResult("com.blah", "method2", "default", true));
//when
TestsRunResult testsRunResult = new TestsRunResult(listOfPassingAndFailingTests);
//then
assertThat(testsRunResult.getStatus(), is(TestsRunResult.Status.FAILURES));
assertThat(testsRunResult.getTests().size(), is(2));
}
@Test
public void givenTestRunResultCreatedWithOnlyFailingTests_whenGetStatusCalled_thenFailuresStatusReturned(){
//given
List<IndividualTestResult> listOfPassingAndFailingTests = getIndividualTestResults(new IndividualTestResult("com.blah", "method", "default", false), new IndividualTestResult("com.blah", "method2", "default", false));
//when
TestsRunResult testsRunResult = new TestsRunResult(listOfPassingAndFailingTests);
//then
assertThat(testsRunResult.getStatus(), is(TestsRunResult.Status.FAILURES));
assertThat(testsRunResult.getTests().size(), is(2));
}
@Test
public void equalsContract() {
EqualsVerifier.forClass(TestsRunResult.class).verify();
}
private List<IndividualTestResult> getIndividualTestResults(IndividualTestResult... method) {
List<IndividualTestResult> tests = new ArrayList<>();
Collections.addAll(tests, method);
return tests;
}
}