99import io .cucumber .core .backend .HookDefinition ;
1010import io .cucumber .core .backend .ParameterTypeDefinition ;
1111import io .cucumber .core .backend .ScenarioScoped ;
12+ import io .cucumber .core .backend .StaticHookDefinition ;
1213import io .cucumber .core .backend .StepDefinition ;
1314import io .cucumber .core .eventbus .EventBus ;
1415import io .cucumber .core .gherkin .Step ;
@@ -45,11 +46,13 @@ final class CachingGlue implements Glue {
4546 private final List <DefaultDataTableCellTransformerDefinition > defaultDataTableCellTransformers = new ArrayList <>();
4647 private final List <DocStringTypeDefinition > docStringTypeDefinitions = new ArrayList <>();
4748
49+ private final List <StaticHookDefinition > beforeAllHooks = new ArrayList <>();
4850 private final List <CoreHookDefinition > beforeHooks = new ArrayList <>();
4951 private final List <CoreHookDefinition > beforeStepHooks = new ArrayList <>();
5052 private final List <StepDefinition > stepDefinitions = new ArrayList <>();
5153 private final List <CoreHookDefinition > afterStepHooks = new ArrayList <>();
5254 private final List <CoreHookDefinition > afterHooks = new ArrayList <>();
55+ private final List <StaticHookDefinition > afterAllHooks = new ArrayList <>();
5356
5457 /*
5558 * Storing the pattern that matches the step text allows us to cache the rather slow
@@ -67,6 +70,17 @@ final class CachingGlue implements Glue {
6770 this .bus = bus ;
6871 }
6972
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+
7084 @ Override
7185 public void addStepDefinition (StepDefinition stepDefinition ) {
7286 stepDefinitions .add (stepDefinition );
@@ -126,6 +140,10 @@ public void addDocStringType(DocStringTypeDefinition docStringType) {
126140 docStringTypeDefinitions .add (docStringType );
127141 }
128142
143+ List <StaticHookDefinition > getBeforeAllHooks () {
144+ return new ArrayList <>(beforeAllHooks );
145+ }
146+
129147 Collection <CoreHookDefinition > getBeforeHooks () {
130148 return new ArrayList <>(beforeHooks );
131149 }
@@ -146,6 +164,10 @@ Collection<CoreHookDefinition> getAfterStepHooks() {
146164 return hooks ;
147165 }
148166
167+ List <StaticHookDefinition > getAfterAllHooks () {
168+ return new ArrayList <>(afterAllHooks );
169+ }
170+
149171 Collection <ParameterTypeDefinition > getParameterTypeDefinitions () {
150172 return parameterTypeDefinitions ;
151173 }
0 commit comments