9
9
import io .cucumber .core .backend .HookDefinition ;
10
10
import io .cucumber .core .backend .ParameterTypeDefinition ;
11
11
import io .cucumber .core .backend .ScenarioScoped ;
12
+ import io .cucumber .core .backend .StaticHookDefinition ;
12
13
import io .cucumber .core .backend .StepDefinition ;
13
14
import io .cucumber .core .eventbus .EventBus ;
14
15
import io .cucumber .core .gherkin .Step ;
@@ -45,11 +46,13 @@ final class CachingGlue implements Glue {
45
46
private final List <DefaultDataTableCellTransformerDefinition > defaultDataTableCellTransformers = new ArrayList <>();
46
47
private final List <DocStringTypeDefinition > docStringTypeDefinitions = new ArrayList <>();
47
48
49
+ private final List <StaticHookDefinition > beforeAllHooks = new ArrayList <>();
48
50
private final List <CoreHookDefinition > beforeHooks = new ArrayList <>();
49
51
private final List <CoreHookDefinition > beforeStepHooks = new ArrayList <>();
50
52
private final List <StepDefinition > stepDefinitions = new ArrayList <>();
51
53
private final List <CoreHookDefinition > afterStepHooks = new ArrayList <>();
52
54
private final List <CoreHookDefinition > afterHooks = new ArrayList <>();
55
+ private final List <StaticHookDefinition > afterAllHooks = new ArrayList <>();
53
56
54
57
/*
55
58
* Storing the pattern that matches the step text allows us to cache the rather slow
@@ -67,6 +70,17 @@ final class CachingGlue implements Glue {
67
70
this .bus = bus ;
68
71
}
69
72
73
+ @ Override
74
+ public void addBeforeAllHook (StaticHookDefinition beforeAllHook ) {
75
+ beforeAllHooks .add (beforeAllHook );
76
+
77
+ }
78
+
79
+ @ Override
80
+ public void addAfterAllHook (StaticHookDefinition afterAllHook ) {
81
+ afterAllHooks .add (afterAllHook );
82
+ }
83
+
70
84
@ Override
71
85
public void addStepDefinition (StepDefinition stepDefinition ) {
72
86
stepDefinitions .add (stepDefinition );
@@ -126,6 +140,10 @@ public void addDocStringType(DocStringTypeDefinition docStringType) {
126
140
docStringTypeDefinitions .add (docStringType );
127
141
}
128
142
143
+ List <StaticHookDefinition > getBeforeAllHooks () {
144
+ return new ArrayList <>(beforeAllHooks );
145
+ }
146
+
129
147
Collection <CoreHookDefinition > getBeforeHooks () {
130
148
return new ArrayList <>(beforeHooks );
131
149
}
@@ -146,6 +164,10 @@ Collection<CoreHookDefinition> getAfterStepHooks() {
146
164
return hooks ;
147
165
}
148
166
167
+ List <StaticHookDefinition > getAfterAllHooks () {
168
+ return new ArrayList <>(afterAllHooks );
169
+ }
170
+
149
171
Collection <ParameterTypeDefinition > getParameterTypeDefinitions () {
150
172
return parameterTypeDefinitions ;
151
173
}
0 commit comments