use of io.cucumber.core.backend.Glue in project cucumber-jvm by cucumber.
the class RunnerTest method all_static_hooks_execute_also_after_failure.
@Test
void all_static_hooks_execute_also_after_failure() {
StaticHookDefinition beforeAllHook = createStaticHook();
StaticHookDefinition failingBeforeAllHook = createStaticHook();
doThrow(new RuntimeException("boom")).when(failingBeforeAllHook).execute();
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {
@Override
public void loadGlue(Glue glue, List<URI> gluePaths) {
glue.addBeforeAllHook(beforeAllHook);
glue.addBeforeAllHook(failingBeforeAllHook);
}
};
Runner runner = runnerSupplier.get();
assertThrows(RuntimeException.class, runner::runBeforeAllHooks);
InOrder inOrder = inOrder(beforeAllHook, failingBeforeAllHook);
inOrder.verify(beforeAllHook).execute();
inOrder.verify(failingBeforeAllHook).execute();
}
use of io.cucumber.core.backend.Glue in project cucumber-jvm by cucumber.
the class RunnerTest method aftersteps_are_executed_after_failed_step.
@Test
void aftersteps_are_executed_after_failed_step() {
StubStepDefinition stepDefinition = spy(new StubStepDefinition("some step") {
@Override
public void execute(Object[] args) {
super.execute(args);
throw new RuntimeException();
}
});
Pickle pickleMatchingStepDefinitions = createPickleMatchingStepDefinitions(stepDefinition);
final HookDefinition afterStepHook = createHook();
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {
@Override
public void loadGlue(Glue glue, List<URI> gluePaths) {
glue.addAfterHook(afterStepHook);
glue.addStepDefinition(stepDefinition);
}
};
runnerSupplier.get().runPickle(pickleMatchingStepDefinitions);
InOrder inOrder = inOrder(afterStepHook, stepDefinition);
inOrder.verify(stepDefinition).execute(any(Object[].class));
inOrder.verify(afterStepHook).execute(any(TestCaseState.class));
}
use of io.cucumber.core.backend.Glue in project cucumber-jvm by cucumber.
the class RunnerTest method steps_are_executed.
@Test
void steps_are_executed() {
StubStepDefinition stepDefinition = new StubStepDefinition("some step");
Pickle pickleMatchingStepDefinitions = createPickleMatchingStepDefinitions(stepDefinition);
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {
@Override
public void loadGlue(Glue glue, List<URI> gluePaths) {
glue.addStepDefinition(stepDefinition);
}
};
runnerSupplier.get().runPickle(pickleMatchingStepDefinitions);
assertThat(stepDefinition.getArgs(), is(equalTo(emptyList())));
}
use of io.cucumber.core.backend.Glue in project cucumber-jvm by cucumber.
the class RunnerTest method aftersteps_executed_for_passed_step.
@Test
void aftersteps_executed_for_passed_step() {
StubStepDefinition stepDefinition = spy(new StubStepDefinition("some step"));
Pickle pickle = createPickleMatchingStepDefinitions(stepDefinition);
HookDefinition afteStepHook1 = createHook();
HookDefinition afteStepHook2 = createHook();
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {
@Override
public void loadGlue(Glue glue, List<URI> gluePaths) {
glue.addAfterHook(afteStepHook1);
glue.addAfterHook(afteStepHook2);
glue.addStepDefinition(stepDefinition);
}
};
runnerSupplier.get().runPickle(pickle);
InOrder inOrder = inOrder(afteStepHook1, afteStepHook2, stepDefinition);
inOrder.verify(stepDefinition).execute(any(Object[].class));
inOrder.verify(afteStepHook2).execute(any(TestCaseState.class));
inOrder.verify(afteStepHook1).execute(any(TestCaseState.class));
}
use of io.cucumber.core.backend.Glue in project cucumber-jvm by cucumber.
the class RunnerTest method hooks_not_executed_in_dry_run_mode.
@Test
void hooks_not_executed_in_dry_run_mode() {
RuntimeOptions runtimeOptions = new RuntimeOptionsBuilder().setDryRun().build();
StaticHookDefinition beforeAllHook = createStaticHook();
StaticHookDefinition afterAllHook = createStaticHook();
HookDefinition beforeHook = createHook();
HookDefinition afterHook = createHook();
HookDefinition beforeStepHook = createHook();
HookDefinition afterStepHook = createHook();
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {
@Override
public void loadGlue(Glue glue, List<URI> gluePaths) {
glue.addBeforeAllHook(beforeAllHook);
glue.addAfterAllHook(afterAllHook);
glue.addBeforeHook(beforeHook);
glue.addAfterHook(afterHook);
glue.addBeforeStepHook(beforeStepHook);
glue.addAfterStepHook(afterStepHook);
}
};
runnerSupplier.get().runBeforeAllHooks();
runnerSupplier.get().runPickle(createPicklesWithSteps());
runnerSupplier.get().runAfterAllHooks();
verify(beforeAllHook, never()).execute();
verify(afterAllHook, never()).execute();
verify(beforeHook, never()).execute(any(TestCaseState.class));
verify(afterHook, never()).execute(any(TestCaseState.class));
verify(beforeStepHook, never()).execute(any(TestCaseState.class));
verify(afterStepHook, never()).execute(any(TestCaseState.class));
}
Aggregations