@Test public void shouldReturnExceptionThrownInBeforeToClientWhenTestFails() throws Exception { Exception expectedException = new Exception("Expected"); TestScenarios.exceptionThrownInBefore = expectedException; Exception unexpectedException = new Exception("Not expected"); TestScenarios.exceptionThrownInAfter = unexpectedException; JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldFailOnException"); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertSame(expectedException, result.getThrowable()); }
@Test public void shouldReturnExceptionThrownInAfterClientWhenTestSucceeds() throws Exception { Exception expectedException = new Exception("Expected"); TestScenarios.exceptionThrownInAfter = expectedException; JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldSucceed"); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertSame(expectedException, result.getThrowable()); }
@Test public void shouldReturnAssertionErrorToClientWhenAfterThrowsException() throws Exception { Exception unexpectedException = new Exception("Not expected"); TestScenarios.exceptionThrownInAfter = unexpectedException; JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldFailOnException"); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertNotNull(result.getThrowable()); Assert.assertEquals(AssertionError.class, result.getThrowable().getClass()); }
@Test public void shouldReturnExceptionToClientIfAnnotatedExpectedAndFailingOnWrongExceptionThrown() throws Exception { State.caughtTestException(new UnsupportedOperationException()); JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldFailAnnotatedExpectedWrongException"); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertNotNull(result.getThrowable()); Assert.assertEquals(UnsupportedOperationException.class, result.getThrowable().getClass()); }
@Test public void shouldReturnExceptionToClientIfAnnotatedExpectedAndPassing() throws Exception { State.caughtTestException(new IllegalArgumentException()); JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldPassAnnotatedExpected"); Assert.assertEquals(TestResult.Status.PASSED, result.getStatus()); Assert.assertNotNull(result.getThrowable()); Assert.assertEquals(IllegalArgumentException.class, result.getThrowable().getClass()); }
@Test public void shouldNotReturnExceptionToClientIfExpectedRulePassing() throws Exception { State.caughtTestException(new IllegalArgumentException()); JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldPassOnException"); Assert.assertEquals(TestResult.Status.PASSED, result.getStatus()); Assert.assertNull(result.getThrowable()); }
@Test public void shouldReturnExceptionToClientIfExpectedRuleFailing() throws Exception { JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldFailOnException"); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertNotNull(result.getThrowable()); Assert.assertEquals(AssertionError.class, result.getThrowable().getClass()); }
@Test public void shouldReturnExceptionToClientIfAsumptionFailing() throws Exception { JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldSkipOnAssumption"); Assert.assertEquals(TestResult.Status.SKIPPED, result.getStatus()); Assert.assertNotNull(result.getThrowable()); Assert.assertEquals(AssumptionViolatedException.class, result.getThrowable().getClass()); }
@Test public void shouldNotReturnExceptionToClientIfAsumptionPassing() throws Exception { JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldPassOnAssumption"); Assert.assertEquals(TestResult.Status.PASSED, result.getStatus()); Assert.assertNull(result.getThrowable()); }
@Test public void shouldNotReturnExceptionToClientIfAnnotatedExpectedAndFailingOnNoExceptionThrown() throws Exception { JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldFailAnnotatedExpected"); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertNull(result.getThrowable()); //Assert.assertEquals(IllegalArgumentException.class, result.getThrowable().getClass()); }
@Test public void should_ignore_null_entry_and_treat_result_as_success() throws Exception { // given final TestResult p1 = TestResult.passed("First test passed"); final List<TestResult> testResults = asList(p1, null); // when final TestResult result = TestResult.flatten(testResults); // then assertThat(result.getStatus()).isEqualTo(TestResult.Status.PASSED); } }
@Test public void should_flatten_successful_test_results() throws Exception { // given final TestResult p1 = TestResult.passed(); final TestResult p2 = TestResult.passed(); final List<TestResult> testResults = asList(p1, p2); // when TestResult result = TestResult.flatten(testResults); // then assertThat(result.getStatus()).isEqualTo(TestResult.Status.PASSED); }
@Test public void should_mark_test_result_as_failed_if_there_is_at_least_one_failure() throws Exception { // given final TestResult p1 = TestResult.passed("First test passed"); final TestResult s1 = TestResult.skipped("Not implemented yet"); final TestResult f1 = failed(new RuntimeException("Exception")); final List<TestResult> testResults = asList(p1, s1, f1); // when final TestResult result = TestResult.flatten(testResults); // then assertThat(result.getStatus()).isEqualTo(TestResult.Status.FAILED); }
@Test public void shouldPassResultIfNoExceptionCaughtAfterJunit() throws Exception { TestResult result = TestResult.failed(new NullPointerException()); new UpdateTestResultBeforeAfter().update(event, result); Assert.assertEquals(Status.PASSED, result.getStatus()); Assert.assertNull(result.getThrowable()); }
@Test public void shouldFailResultIfExceptionCaughtAfterJunit() throws Exception { State.caughtExceptionAfterJunit(new AssertionError("A")); TestResult result = TestResult.failed(new NullPointerException("A")); new UpdateTestResultBeforeAfter().update(event, result); State.caughtExceptionAfterJunit(null); Assert.assertEquals(Status.FAILED, result.getStatus()); Assert.assertNotNull(result.getThrowable()); Assert.assertTrue(result.getThrowable() instanceof AssertionError); } }
@Test public void shouldReturnExceptionThrownInBeforeToClientWhenTestFails() throws Exception { Exception expectedException = new Exception("Expected"); TestScenarios.exceptionThrownInBefore = expectedException; Exception unexpectedException = new Exception("Not expected"); TestScenarios.exceptionThrownInAfter = unexpectedException; JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldFailOnException"); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertSame(expectedException, result.getThrowable()); }
@Test public void shouldReturnFailedTest() throws Exception { TestNGTestRunner runner = new TestNGTestRunner(); TestResult result = runner.execute(ShouldProvideVariousTestResultsToTestRunner.class, "shouldProvideFailingTestToRunner"); Assert.assertNotNull(result); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertEquals(AssertionError.class, result.getThrowable().getClass()); }
@Test public void shouldNotReturnExceptionToClientIfAnnotatedExpectedAndFailingOnNoExceptionThrown() throws Exception { JUnitTestRunner runner = new JUnitTestRunner(); TestResult result = runner.execute(TestScenarios.class, "shouldFailAnnotatedExpected"); Assert.assertEquals(TestResult.Status.FAILED, result.getStatus()); Assert.assertNull(result.getThrowable()); //Assert.assertEquals(IllegalArgumentException.class, result.getThrowable().getClass()); }
@Test // TODO: this should me moved to new TestNG test suite public void shouldBeAbleToUseOtherDataProviders() throws Exception { TestNGTestRunner runner = new TestNGTestRunner(); TestResult result = runner.execute(ShouldProvideVariousTestResultsToTestRunner.class, "shouldBeAbleToUseOtherDataProviders"); Assert.assertNotNull(result); Assert.assertEquals(TestResult.Status.PASSED, result.getStatus()); Assert.assertNull(result.getThrowable()); } }
@Test // TODO: this should me moved to new TestNG test suite public void shouldBeAbleToUseOtherDataProviders() throws Exception { TestNGTestRunner runner = new TestNGTestRunner(); TestResult result = runner.execute(ShouldProvideVariousTestResultsToTestRunner.class, "shouldBeAbleToUseOtherDataProviders"); Assert.assertNotNull(result); Assert.assertEquals(TestResult.Status.PASSED, result.getStatus()); Assert.assertNull(result.getThrowable()); } }