package me.atam.atam4jsampleapp; import me.atam.atam4j.dummytests.FailingTest; import me.atam.atam4j.dummytests.PassingAndFailingTests; import me.atam.atam4jdomain.IndividualTestResult; import me.atam.atam4jdomain.TestsRunResult; import me.atam.atam4jsampleapp.testsupport.AcceptanceTest; import me.atam.atam4jsampleapp.testsupport.Atam4jApplicationStarter; import org.junit.Test; import javax.ws.rs.core.Response; import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; public class FailingTestAcceptanceTest extends AcceptanceTest { @Test public void givenSampleApplicationStartedWithFailingTest_whenHealthCheckCalledAfterTestRun_thenFailuresMessageReceived(){ //given dropwizardTestSupportAppConfig = Atam4jApplicationStarter.startApplicationWith(0, FailingTest.class, 1); //when Response response = getResponseFromTestsEndpointOnceTestsRunHasCompleted(); //then assertThat(response.getStatus(), is(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode())); TestsRunResult testRunResult = response.readEntity(TestsRunResult.class); assertThat(testRunResult.getTests().size(), is(1)); assertThat( testRunResult.getTests(), hasItem(new IndividualTestResult(FailingTest.class.getName(), "testThatFails", "default", false)) ); } @Test public void givenSampleApplicationStartedWithPassingAndFailingTest_whenHealthCheckCalledAfterTestRun_thenFailuresMessageReceived(){ //given dropwizardTestSupportAppConfig = Atam4jApplicationStarter.startApplicationWith(0, PassingAndFailingTests.class, 1); //when Response response = getResponseFromTestsEndpointOnceTestsRunHasCompleted(); //then assertThat(response.getStatus(), is(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode())); TestsRunResult testRunResult = response.readEntity(TestsRunResult.class); assertThat(testRunResult.getTests().size(), is(2)); assertThat( testRunResult.getTests(), hasItem(new IndividualTestResult(PassingAndFailingTests.class.getName(), "testThatFails", "default", false)) ); assertThat( testRunResult.getTests(), hasItem(new IndividualTestResult(PassingAndFailingTests.class.getName(), "testThatPasses", "default", true)) ); } }