package me.atam.atam4jsampleapp; import me.atam.atam4j.dummytests.PassingAndFailingTestsWithCategories; 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 PassingAndFailingTestsByCategoryAcceptanceTest extends AcceptanceTest { @Test public void givenPassingAndFailingTests_whenPassngTestsByCategoryEndpointCalledAfterTestRun_thenOKMessageReceivedForOneTestOnly(){ //given dropwizardTestSupportAppConfig = Atam4jApplicationStarter.startApplicationWith(0, PassingAndFailingTestsWithCategories.class, 1); //when Response response = getResponseFromTestsWithCategoryOnceTestRunHasCompleted("A"); //then TestsRunResult testRunResult = response.readEntity(TestsRunResult.class); assertThat(response.getStatus(), is(Response.Status.OK.getStatusCode())); assertThat(testRunResult.getTests().size(), is(1)); assertThat( testRunResult.getTests(), hasItem(new IndividualTestResult(PassingAndFailingTestsWithCategories.class.getName(), "testThatPassesWithCategoryA", "A", true)) ); } @Test public void givenPassingAndFailingTests_whenTestsEndpointCalledAfterTestRun_thenErrorMessageReceivedForTwoTests(){ //given dropwizardTestSupportAppConfig = Atam4jApplicationStarter.startApplicationWith(0, PassingAndFailingTestsWithCategories.class, 1); //when Response response = getResponseFromTestsEndpointOnceTestsRunHasCompleted(); //then TestsRunResult testRunResult = response.readEntity(TestsRunResult.class); assertThat(response.getStatus(), is(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode())); assertThat(testRunResult.getTests().size(), is(2)); assertThat(testRunResult.getTests(), hasItem(new IndividualTestResult(PassingAndFailingTestsWithCategories.class.getName(), "testThatPassesWithCategoryA", "A", true)) ); assertThat(testRunResult.getTests(), hasItem(new IndividualTestResult(PassingAndFailingTestsWithCategories.class.getName(), "testThatFailsWithCategoryB", "B", false)) ); } }