1818import org .junit .jupiter .params .ParameterizedTest ;
1919import org .junit .jupiter .params .provider .EnumSource ;
2020
21- class HookExecutorTest implements HookFixtures {
21+ class HookSupportTest implements HookFixtures {
2222 @ Test
2323 @ DisplayName ("should merge EvaluationContexts on before hooks correctly" )
2424 void shouldMergeEvaluationContextsOnBeforeHooksCorrectly () {
@@ -31,8 +31,11 @@ void shouldMergeEvaluationContextsOnBeforeHooksCorrectly() {
3131 when (hook1 .before (any (), any ())).thenReturn (Optional .of (evaluationContextWithValue ("bla" , "blubber" )));
3232 when (hook2 .before (any (), any ())).thenReturn (Optional .of (evaluationContextWithValue ("foo" , "bar" )));
3333
34- HookExecutor executor = HookExecutor .create (
35- Arrays .asList (hook1 , hook2 ), getBaseHookContextForType (FlagValueType .STRING ), baseContext , Collections .emptyMap ());
34+ HookSupport executor = new HookSupport (
35+ Arrays .asList (hook1 , hook2 ),
36+ getBaseHookContextForType (FlagValueType .STRING ),
37+ baseContext ,
38+ Collections .emptyMap ());
3639
3740 executor .executeBeforeHooks ();
3841
@@ -49,9 +52,13 @@ void shouldMergeEvaluationContextsOnBeforeHooksCorrectly() {
4952 void shouldAlwaysCallGenericHook (FlagValueType flagValueType ) {
5053 Hook <?> genericHook = mockGenericHook ();
5154
52- HookExecutor hookExecutor = HookExecutor .create (List .of (genericHook ), getBaseHookContextForType (flagValueType ), ImmutableContext .EMPTY , Collections .emptyMap ());
55+ HookSupport hookSupport = new HookSupport (
56+ List .of (genericHook ),
57+ getBaseHookContextForType (flagValueType ),
58+ ImmutableContext .EMPTY ,
59+ Collections .emptyMap ());
5360
54- callAllHooks (hookExecutor );
61+ callAllHooks (hookSupport );
5562
5663 verify (genericHook ).before (any (), any ());
5764 verify (genericHook ).after (any (), any (), any ());
@@ -64,18 +71,22 @@ void shouldAlwaysCallGenericHook(FlagValueType flagValueType) {
6471 @ DisplayName ("should allow hooks to store and retrieve data across stages" )
6572 void shouldPassDataAcrossStages (FlagValueType flagValueType ) {
6673 var testHook = new TestHookWithData ();
67- HookExecutor hookExecutor = HookExecutor .create (List .of (testHook ), getBaseHookContextForType (flagValueType ), ImmutableContext .EMPTY , Collections .emptyMap ());
74+ HookSupport hookSupport = new HookSupport (
75+ List .of (testHook ),
76+ getBaseHookContextForType (flagValueType ),
77+ ImmutableContext .EMPTY ,
78+ Collections .emptyMap ());
6879
69- hookExecutor .executeBeforeHooks ();
80+ hookSupport .executeBeforeHooks ();
7081 assertHookData (testHook , "before" );
7182
72- hookExecutor .executeAfterHooks (FlagEvaluationDetails .builder ().build ());
83+ hookSupport .executeAfterHooks (FlagEvaluationDetails .builder ().build ());
7384 assertHookData (testHook , "before" , "after" );
7485
75- hookExecutor .executeAfterAllHooks (FlagEvaluationDetails .builder ().build ());
86+ hookSupport .executeAfterAllHooks (FlagEvaluationDetails .builder ().build ());
7687 assertHookData (testHook , "before" , "after" , "finallyAfter" );
7788
78- hookExecutor .executeErrorHooks (mock (Exception .class ));
89+ hookSupport .executeErrorHooks (mock (Exception .class ));
7990 assertHookData (testHook , "before" , "after" , "finallyAfter" , "error" );
8091 }
8192
@@ -86,48 +97,49 @@ void shouldIsolateDataBetweenHooks(FlagValueType flagValueType) {
8697 var testHook1 = new TestHookWithData (1 );
8798 var testHook2 = new TestHookWithData (2 );
8899
89- HookExecutor hookExecutor = HookExecutor .create (List .of (testHook1 , testHook2 ), getBaseHookContextForType (flagValueType ), ImmutableContext .EMPTY , Collections .emptyMap ());
100+ HookSupport hookSupport = new HookSupport (
101+ List .of (testHook1 , testHook2 ),
102+ getBaseHookContextForType (flagValueType ),
103+ ImmutableContext .EMPTY ,
104+ Collections .emptyMap ());
90105
91- callAllHooks (hookExecutor );
106+ callAllHooks (hookSupport );
92107
93108 assertHookData (testHook1 , 1 , "before" , "after" , "finallyAfter" , "error" );
94109 assertHookData (testHook2 , 2 , "before" , "after" , "finallyAfter" , "error" );
95110 }
96111
97- private static void callAllHooks (HookExecutor hookExecutor ) {
98- hookExecutor .executeBeforeHooks ();
99- hookExecutor .executeAfterHooks (FlagEvaluationDetails .builder ().build ());
100- hookExecutor .executeAfterAllHooks (FlagEvaluationDetails .builder ().build ());
101- hookExecutor .executeErrorHooks (mock (Exception .class ));
112+ private static void callAllHooks (HookSupport hookSupport ) {
113+ hookSupport .executeBeforeHooks ();
114+ hookSupport .executeAfterHooks (FlagEvaluationDetails .builder ().build ());
115+ hookSupport .executeAfterAllHooks (FlagEvaluationDetails .builder ().build ());
116+ hookSupport .executeErrorHooks (mock (Exception .class ));
102117 }
103118
104- private static void assertHookData (TestHookWithData testHook , String ... expectedKeys ) {
119+ private static void assertHookData (TestHookWithData testHook , String ... expectedKeys ) {
105120 for (String expectedKey : expectedKeys ) {
106121 assertThat (testHook .hookData .get (expectedKey ))
107122 .withFailMessage ("Expected key %s not present in hook data" , expectedKey )
108123 .isNotNull ();
109124 }
110125 }
111126
112- private static void assertHookData (TestHookWithData testHook , Object expectedValue , String ... expectedKeys ) {
127+ private static void assertHookData (TestHookWithData testHook , Object expectedValue , String ... expectedKeys ) {
113128 for (String expectedKey : expectedKeys ) {
114129 assertThat (testHook .hookData .get (expectedKey ))
115130 .withFailMessage ("Expected key '%s' not present in hook data" , expectedKey )
116131 .isNotNull ();
117132 assertThat (testHook .hookData .get (expectedKey ))
118- .withFailMessage ("Expected key '%s' not containing expected value. Expected '%s' but found '%s'" ,
133+ .withFailMessage (
134+ "Expected key '%s' not containing expected value. Expected '%s' but found '%s'" ,
119135 expectedKey , expectedValue , testHook .hookData .get (expectedKey ))
120136 .isEqualTo (expectedValue );
121137 }
122138 }
123139
124140 private SharedHookContext getBaseHookContextForType (FlagValueType flagValueType ) {
125141 return new SharedHookContext <>(
126- "flagKey" ,
127- flagValueType ,
128- () -> "client" ,
129- () -> "provider" ,
130- createDefaultValue (flagValueType ));
142+ "flagKey" , flagValueType , () -> "client" , () -> "provider" , createDefaultValue (flagValueType ));
131143 }
132144
133145 private Object createDefaultValue (FlagValueType flagValueType ) {
0 commit comments