88import static org .mockito .Mockito .verify ;
99
1010import dev .openfeature .sdk .fixtures .HookFixtures ;
11- import dev .openfeature .sdk .testutils .TestEventsProvider ;
11+ import dev .openfeature .sdk .testutils .testProvider . TestProvider ;
1212import java .util .Arrays ;
1313import java .util .HashMap ;
1414import java .util .List ;
@@ -23,13 +23,13 @@ class DeveloperExperienceTest implements HookFixtures {
2323 private OpenFeatureAPI api ;
2424
2525 @ BeforeEach
26- public void setUp () throws Exception {
26+ void setUp () {
2727 api = new OpenFeatureAPI ();
2828 }
2929
3030 @ Test
3131 void simpleBooleanFlag () {
32- api .setProviderAndWait (new TestEventsProvider ());
32+ api .setProviderAndWait (TestProvider . builder (). initsToReady ());
3333 Client client = api .getClient ();
3434 Boolean retval = client .getBooleanValue (flagKey , false );
3535 assertFalse (retval );
@@ -39,7 +39,7 @@ void simpleBooleanFlag() {
3939 void clientHooks () {
4040 Hook <Boolean > exampleHook = mockBooleanHook ();
4141
42- api .setProviderAndWait (new TestEventsProvider ());
42+ api .setProviderAndWait (TestProvider . builder (). initsToReady ());
4343 Client client = api .getClient ();
4444 client .addHooks (exampleHook );
4545 Boolean retval = client .getBooleanValue (flagKey , false );
@@ -52,7 +52,7 @@ void evalHooks() {
5252 Hook <Boolean > clientHook = mockBooleanHook ();
5353 Hook <Boolean > evalHook = mockBooleanHook ();
5454
55- api .setProviderAndWait (new TestEventsProvider ());
55+ api .setProviderAndWait (TestProvider . builder (). initsToReady ());
5656 Client client = api .getClient ();
5757 client .addHooks (clientHook );
5858 Boolean retval = client .getBooleanValue (
@@ -72,7 +72,7 @@ void evalHooks() {
7272 @ Test
7373 void providingContext () {
7474
75- api .setProviderAndWait (new TestEventsProvider ());
75+ api .setProviderAndWait (TestProvider . builder (). initsToReady ());
7676 Client client = api .getClient ();
7777 Map <String , Value > attributes = new HashMap <>();
7878 List <Value > values = Arrays .asList (new Value (2 ), new Value (4 ));
@@ -88,7 +88,7 @@ void providingContext() {
8888
8989 @ Test
9090 void brokenProvider () {
91- api .setProviderAndWait (new AlwaysBrokenWithExceptionProvider ());
91+ api .setProviderAndWait (TestProvider . builder (). withExceptionOnFlagEvaluation ());
9292 Client client = api .getClient ();
9393 FlagEvaluationDetails <Boolean > retval = client .getBooleanDetails (flagKey , false );
9494 assertEquals (ErrorCode .FLAG_NOT_FOUND , retval .getErrorCode ());
@@ -102,6 +102,8 @@ void providerLockedPerTransaction() {
102102
103103 final String defaultValue = "string-value" ;
104104 final OpenFeatureAPI api = new OpenFeatureAPI ();
105+ var provider1 = TestProvider .builder ().initsToReady ();
106+ var provider2 = TestProvider .builder ().initsToReady ();
105107
106108 class MutatingHook implements Hook {
107109
@@ -110,31 +112,31 @@ class MutatingHook implements Hook {
110112 // change the provider during a before hook - this should not impact the evaluation in progress
111113 public Optional before (HookContext ctx , Map hints ) {
112114
113- api .setProviderAndWait (TestEventsProvider . newInitializedTestEventsProvider () );
115+ api .setProviderAndWait (provider2 );
114116
115117 return Optional .empty ();
116118 }
117119 }
118120
119121 final Client client = api .getClient ();
120- api .setProviderAndWait (new DoSomethingProvider () );
122+ api .setProviderAndWait (provider1 );
121123 api .addHooks (new MutatingHook ());
122124
123125 // if provider is changed during an evaluation transaction it should proceed with the original provider
124- String doSomethingValue = client .getStringValue ("val" , defaultValue );
125- assertEquals (new StringBuilder ( defaultValue ). reverse ().toString (), doSomethingValue );
126+ client .getStringValue ("val" , defaultValue );
127+ assertEquals (1 , provider1 . getFlagEvaluations ().size () );
126128
127129 api .clearHooks ();
128130
129131 // subsequent evaluations should now use new provider set by hook
130- String noOpValue = client .getStringValue ("val" , defaultValue );
131- assertEquals (noOpValue , defaultValue );
132+ client .getStringValue ("val" , defaultValue );
133+ assertEquals (1 , provider2 . getFlagEvaluations (). size () );
132134 }
133135
134136 @ Test
135137 void setProviderAndWaitShouldPutTheProviderInReadyState () {
136138 String domain = "domain" ;
137- api .setProviderAndWait (domain , new TestEventsProvider ());
139+ api .setProviderAndWait (domain , TestProvider . builder (). initsToReady ());
138140 Client client = api .getClient (domain );
139141 assertThat (client .getProviderState ()).isEqualTo (ProviderState .READY );
140142 }
@@ -146,7 +148,7 @@ void setProviderAndWaitShouldPutTheProviderInReadyState() {
146148 @ Test
147149 void shouldPutTheProviderInStateErrorAfterEmittingErrorEvent () {
148150 String domain = "domain" ;
149- TestEventsProvider provider = new TestEventsProvider ();
151+ var provider = TestProvider . builder (). initsToReady ();
150152 api .setProviderAndWait (domain , provider );
151153 Client client = api .getClient (domain );
152154 assertThat (client .getProviderState ()).isEqualTo (ProviderState .READY );
@@ -161,7 +163,7 @@ void shouldPutTheProviderInStateErrorAfterEmittingErrorEvent() {
161163 @ Test
162164 void shouldPutTheProviderInStateStaleAfterEmittingStaleEvent () {
163165 String domain = "domain" ;
164- TestEventsProvider provider = new TestEventsProvider ();
166+ var provider = TestProvider . builder (). initsToReady ();
165167 api .setProviderAndWait (domain , provider );
166168 Client client = api .getClient (domain );
167169 assertThat (client .getProviderState ()).isEqualTo (ProviderState .READY );
@@ -176,7 +178,7 @@ void shouldPutTheProviderInStateStaleAfterEmittingStaleEvent() {
176178 @ Test
177179 void shouldPutTheProviderInStateReadyAfterEmittingReadyEvent () {
178180 String domain = "domain" ;
179- TestEventsProvider provider = new TestEventsProvider ();
181+ var provider = TestProvider . builder (). initsToReady ();
180182 api .setProviderAndWait (domain , provider );
181183 Client client = api .getClient (domain );
182184 assertThat (client .getProviderState ()).isEqualTo (ProviderState .READY );
0 commit comments