Skip to content

Commit c6f3768

Browse files
committed
Fix tests
1 parent 8f97461 commit c6f3768

File tree

1 file changed

+32
-25
lines changed

1 file changed

+32
-25
lines changed

core/src/test/java/io/cucumber/core/runner/RunnerTest.java

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import io.cucumber.core.backend.Glue;
66
import io.cucumber.core.backend.HookDefinition;
77
import io.cucumber.core.backend.ObjectFactory;
8+
import io.cucumber.core.backend.StaticHookDefinition;
89
import io.cucumber.core.eventbus.EventBus;
910
import io.cucumber.core.feature.TestFeatureParser;
1011
import io.cucumber.core.gherkin.Feature;
@@ -46,36 +47,36 @@ class RunnerTest {
4647
};
4748

4849
@Test
49-
void hooks_execute_when_world_exist() {
50-
final HookDefinition beforeHook = addBeforeHook();
51-
final HookDefinition afterHook = addAfterHook();
50+
void hooks_execute_inside_world_and_around_world() {
51+
StaticHookDefinition beforeAllHook = createStaticHook();
52+
StaticHookDefinition afterAllHook = createStaticHook();
53+
HookDefinition beforeHook = createHook();
54+
HookDefinition afterHook = createHook();
5255

5356
Backend backend = mock(Backend.class);
5457
when(backend.getSnippet()).thenReturn(new TestSnippet());
5558
ObjectFactory objectFactory = mock(ObjectFactory.class);
5659
doAnswer(invocation -> {
5760
Glue glue = invocation.getArgument(0);
58-
glue.addAfterHook(afterHook);
61+
glue.addBeforeAllHook(beforeAllHook);
62+
glue.addAfterAllHook(afterAllHook);
5963
glue.addBeforeHook(beforeHook);
64+
glue.addAfterHook(afterHook);
6065
return null;
6166
}).when(backend).loadGlue(any(Glue.class), ArgumentMatchers.anyList());
6267

63-
new Runner(bus, singletonList(backend), objectFactory, typeRegistryConfigurer, runtimeOptions)
64-
.runPickle(createPicklesWithSteps());
68+
Runner runner = new Runner(bus, singletonList(backend), objectFactory, typeRegistryConfigurer, runtimeOptions);
69+
runner.runBeforeAllHooks();
70+
runner.runPickle(createPicklesWithSteps());
71+
runner.runAfterAllHooks();
6572

66-
InOrder inOrder = inOrder(beforeHook, afterHook, backend);
73+
InOrder inOrder = inOrder(beforeAllHook, afterAllHook, beforeHook, afterHook, backend);
74+
inOrder.verify(beforeAllHook).execute();
6775
inOrder.verify(backend).buildWorld();
6876
inOrder.verify(beforeHook).execute(any(TestCaseState.class));
6977
inOrder.verify(afterHook).execute(any(TestCaseState.class));
7078
inOrder.verify(backend).disposeWorld();
71-
}
72-
73-
private HookDefinition addBeforeHook() {
74-
return addHook();
75-
}
76-
77-
private HookDefinition addAfterHook() {
78-
return addHook();
79+
inOrder.verify(afterAllHook).execute();
7980
}
8081

8182
private Pickle createPicklesWithSteps() {
@@ -86,7 +87,13 @@ private Pickle createPicklesWithSteps() {
8687
return feature.getPickles().get(0);
8788
}
8889

89-
private HookDefinition addHook() {
90+
private StaticHookDefinition createStaticHook() {
91+
StaticHookDefinition hook = mock(StaticHookDefinition.class);
92+
when(hook.getLocation()).thenReturn("");
93+
return hook;
94+
}
95+
96+
private HookDefinition createHook() {
9097
HookDefinition hook = mock(HookDefinition.class);
9198
when(hook.getTagExpression()).thenReturn("");
9299
when(hook.getLocation()).thenReturn("");
@@ -98,7 +105,7 @@ void steps_are_skipped_after_failure() {
98105
StubStepDefinition stepDefinition = spy(new StubStepDefinition("some step"));
99106
Pickle pickleMatchingStepDefinitions = createPickleMatchingStepDefinitions(stepDefinition);
100107

101-
final HookDefinition failingBeforeHook = addBeforeHook();
108+
final HookDefinition failingBeforeHook = createHook();
102109
doThrow(new RuntimeException("Boom")).when(failingBeforeHook).execute(ArgumentMatchers.any());
103110
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {
104111
@Override
@@ -155,7 +162,7 @@ public void loadGlue(Glue glue, List<URI> gluePaths) {
155162
}
156163

157164
private HookDefinition addAfterStepHook() {
158-
return addHook();
165+
return createHook();
159166
}
160167

161168
@Test
@@ -185,10 +192,10 @@ public void loadGlue(Glue glue, List<URI> gluePaths) {
185192

186193
@Test
187194
void hooks_execute_also_after_failure() {
188-
final HookDefinition failingBeforeHook = addBeforeHook();
195+
final HookDefinition failingBeforeHook = createHook();
189196
doThrow(new RuntimeException("boom")).when(failingBeforeHook).execute(any(TestCaseState.class));
190-
final HookDefinition beforeHook = addBeforeHook();
191-
final HookDefinition afterHook = addAfterHook();
197+
final HookDefinition beforeHook = createHook();
198+
final HookDefinition afterHook = createHook();
192199

193200
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {
194201
@Override
@@ -241,8 +248,8 @@ public void loadGlue(Glue glue, List<URI> gluePaths) {
241248
void hooks_not_executed_in_dry_run_mode() {
242249
RuntimeOptions runtimeOptions = new RuntimeOptionsBuilder().setDryRun().build();
243250

244-
final HookDefinition beforeHook = addBeforeHook();
245-
final HookDefinition afterHook = addAfterHook();
251+
final HookDefinition beforeHook = createHook();
252+
final HookDefinition afterHook = createHook();
246253
final HookDefinition afterStepHook = addAfterStepHook();
247254

248255
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {
@@ -263,8 +270,8 @@ public void loadGlue(Glue glue, List<URI> gluePaths) {
263270

264271
@Test
265272
void hooks_not_executed_for_empty_pickles() {
266-
final HookDefinition beforeHook = addBeforeHook();
267-
final HookDefinition afterHook = addAfterHook();
273+
final HookDefinition beforeHook = createHook();
274+
final HookDefinition afterHook = createHook();
268275
final HookDefinition afterStepHook = addAfterStepHook();
269276

270277
TestRunnerSupplier runnerSupplier = new TestRunnerSupplier(bus, runtimeOptions) {

0 commit comments

Comments
 (0)