use of io.cucumber.plugin.event.TestCaseFinished in project cucumber-jvm by cucumber.
the class JUnitReporterWithStepNotificationsTest method test_step_finished_fires_assumption_failed_and_test_finished_for_skipped_step.
@Test
void test_step_finished_fires_assumption_failed_and_test_finished_for_skipped_step() {
jUnitReporter.startExecutionUnit(pickleRunner, runNotifier);
bus.send(new TestCaseStarted(now(), testCase));
bus.send(new TestStepStarted(now(), testCase, mockTestStep(step)));
Result result = new Result(Status.SKIPPED, ZERO, null);
bus.send(new TestStepFinished(now(), testCase, mockTestStep(step), result));
verify(runNotifier).fireTestAssumptionFailed(failureArgumentCaptor.capture());
verify(runNotifier).fireTestFinished(pickleRunner.describeChild(step));
Failure stepFailure = failureArgumentCaptor.getValue();
assertThat(stepFailure.getDescription(), is(equalTo(pickleRunner.describeChild(step))));
assertThat(stepFailure.getException(), instanceOf(SkippedThrowable.class));
assertThat(stepFailure.getException().getMessage(), is(equalTo("This step is skipped")));
bus.send(new TestCaseFinished(now(), testCase, result));
verify(runNotifier, times(2)).fireTestAssumptionFailed(failureArgumentCaptor.capture());
Failure pickleFailure = failureArgumentCaptor.getValue();
assertThat(pickleFailure.getDescription(), is(equalTo(pickleRunner.getDescription())));
assertThat(pickleFailure.getException(), instanceOf(SkippedThrowable.class));
assertThat(pickleFailure.getException().getMessage(), is(equalTo("This scenario is skipped")));
}
use of io.cucumber.plugin.event.TestCaseFinished in project cucumber-jvm by cucumber.
the class JUnitReporterWithStepNotificationsTest method test_step_finished_fires_test_failure_and_test_finished_for_failed_hook.
@Test
void test_step_finished_fires_test_failure_and_test_finished_for_failed_hook() {
jUnitReporter.startExecutionUnit(pickleRunner, runNotifier);
bus.send(new TestCaseStarted(now(), testCase));
bus.send(new TestStepStarted(now(), testCase, mockTestStep(step)));
Result stepResult = new Result(Status.PASSED, ZERO, null);
bus.send(new TestStepFinished(now(), testCase, mockTestStep(step), stepResult));
bus.send(new TestStepStarted(now(), testCase, mock(HookTestStep.class)));
Throwable exception = new Exception("Oops");
Result result = new Result(Status.FAILED, ZERO, exception);
bus.send(new TestStepFinished(now(), testCase, mock(HookTestStep.class), result));
// Hooks are not included in step failure
verify(runNotifier, never()).fireTestFailure(failureArgumentCaptor.capture());
verify(runNotifier).fireTestFinished(pickleRunner.describeChild(step));
bus.send(new TestCaseFinished(now(), testCase, result));
verify(runNotifier).fireTestFailure(failureArgumentCaptor.capture());
verify(runNotifier).fireTestFinished(pickleRunner.describeChild(step));
Failure pickleFailure = failureArgumentCaptor.getValue();
assertThat(pickleFailure.getDescription(), is(equalTo(pickleRunner.getDescription())));
assertThat(pickleFailure.getException(), is(equalTo(exception)));
}
use of io.cucumber.plugin.event.TestCaseFinished in project cucumber-jvm by cucumber.
the class JUnitReporterWithStepNotificationsTest method test_step_finished_fires_assumption_failed_and_test_finished_for_skipped_step_with_assumption_violated.
@Test
void test_step_finished_fires_assumption_failed_and_test_finished_for_skipped_step_with_assumption_violated() {
jUnitReporter.startExecutionUnit(pickleRunner, runNotifier);
bus.send(new TestCaseStarted(now(), testCase));
bus.send(new TestStepStarted(now(), testCase, mockTestStep(step)));
Throwable exception = new AssumptionViolatedException("Oops");
Result result = new Result(Status.SKIPPED, ZERO, exception);
bus.send(new TestStepFinished(now(), testCase, mockTestStep(step), result));
verify(runNotifier).fireTestAssumptionFailed(failureArgumentCaptor.capture());
verify(runNotifier).fireTestFinished(pickleRunner.describeChild(step));
Failure stepFailure = failureArgumentCaptor.getValue();
assertThat(stepFailure.getDescription(), is(equalTo(pickleRunner.describeChild(step))));
assertThat(stepFailure.getException(), is(equalTo(exception)));
bus.send(new TestCaseFinished(now(), testCase, result));
verify(runNotifier, times(2)).fireTestAssumptionFailed(failureArgumentCaptor.capture());
verify(runNotifier).fireTestFinished(pickleRunner.describeChild(step));
Failure pickleFailure = failureArgumentCaptor.getValue();
assertThat(pickleFailure.getDescription(), is(equalTo(pickleRunner.getDescription())));
assertThat(pickleFailure.getException(), is(equalTo(exception)));
}
use of io.cucumber.plugin.event.TestCaseFinished in project cucumber-jvm by cucumber.
the class TestCaseResultObserverTest method should_be_skipped_for_skipped_result.
@Test
public void should_be_skipped_for_skipped_result() {
TestCaseResultObserver resultListener = TestCaseResultObserver.observe(bus);
Result stepResult = new Result(SKIPPED, ZERO, null);
bus.send(new TestStepFinished(now(), testCase, step, stepResult));
Result testCaseResult = new Result(SKIPPED, ZERO, null);
bus.send(new TestCaseFinished(now(), testCase, testCaseResult));
Exception exception = expectThrows(Exception.class, resultListener::assertTestCasePassed);
assertThat(exception.getCause(), instanceOf(SkipException.class));
}
use of io.cucumber.plugin.event.TestCaseFinished in project cucumber-jvm by cucumber.
the class TestCaseResultObserverTest method should_be_skipped_for_pending_result.
@Test
public void should_be_skipped_for_pending_result() {
TestCaseResultObserver resultListener = TestCaseResultObserver.observe(bus);
Exception error = new TestPendingException();
Result stepResult = new Result(PENDING, ZERO, error);
bus.send(new TestStepFinished(now(), testCase, step, stepResult));
Result testCaseResult = new Result(PENDING, ZERO, error);
bus.send(new TestCaseFinished(now(), testCase, testCaseResult));
Exception exception = expectThrows(Exception.class, resultListener::assertTestCasePassed);
assertThat(exception.getCause(), is(error));
}
Aggregations