88import static org .mockito .Mockito .verify ;
99
1010import dev .openfeature .sdk .fixtures .HookFixtures ;
11- import dev .openfeature .sdk .testutils .FeatureProviderTestUtils ;
1211import dev .openfeature .sdk .testutils .TestEventsProvider ;
1312import java .util .Arrays ;
1413import java .util .HashMap ;
1514import java .util .List ;
1615import java .util .Map ;
1716import java .util .Optional ;
1817import lombok .SneakyThrows ;
18+ import org .junit .jupiter .api .BeforeEach ;
1919import org .junit .jupiter .api .Test ;
2020
2121class DeveloperExperienceTest implements HookFixtures {
2222 transient String flagKey = "mykey" ;
23+ private OpenFeatureAPI api ;
24+
25+ @ BeforeEach
26+ public void setUp () throws Exception {
27+ api = new OpenFeatureAPI ();
28+ }
2329
2430 @ Test
2531 void simpleBooleanFlag () {
26- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
2732 api .setProviderAndWait (new TestEventsProvider ());
2833 Client client = api .getClient ();
2934 Boolean retval = client .getBooleanValue (flagKey , false );
@@ -34,7 +39,6 @@ void simpleBooleanFlag() {
3439 void clientHooks () {
3540 Hook <Boolean > exampleHook = mockBooleanHook ();
3641
37- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
3842 api .setProviderAndWait (new TestEventsProvider ());
3943 Client client = api .getClient ();
4044 client .addHooks (exampleHook );
@@ -48,7 +52,6 @@ void evalHooks() {
4852 Hook <Boolean > clientHook = mockBooleanHook ();
4953 Hook <Boolean > evalHook = mockBooleanHook ();
5054
51- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
5255 api .setProviderAndWait (new TestEventsProvider ());
5356 Client client = api .getClient ();
5457 client .addHooks (clientHook );
@@ -69,7 +72,6 @@ void evalHooks() {
6972 @ Test
7073 void providingContext () {
7174
72- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
7375 api .setProviderAndWait (new TestEventsProvider ());
7476 Client client = api .getClient ();
7577 Map <String , Value > attributes = new HashMap <>();
@@ -86,8 +88,7 @@ void providingContext() {
8688
8789 @ Test
8890 void brokenProvider () {
89- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
90- FeatureProviderTestUtils .setFeatureProvider (new AlwaysBrokenProvider ());
91+ api .setProviderAndWait (new AlwaysBrokenWithExceptionProvider ());
9192 Client client = api .getClient ();
9293 FlagEvaluationDetails <Boolean > retval = client .getBooleanDetails (flagKey , false );
9394 assertEquals (ErrorCode .FLAG_NOT_FOUND , retval .getErrorCode ());
@@ -99,23 +100,24 @@ void brokenProvider() {
99100 @ Test
100101 void providerLockedPerTransaction () {
101102
103+ final String defaultValue = "string-value" ;
104+ final OpenFeatureAPI api = new OpenFeatureAPI ();
105+
102106 class MutatingHook implements Hook {
103107
104108 @ Override
105109 @ SneakyThrows
106110 // change the provider during a before hook - this should not impact the evaluation in progress
107111 public Optional before (HookContext ctx , Map hints ) {
108112
109- FeatureProviderTestUtils . setFeatureProvider (TestEventsProvider .newInitializedTestEventsProvider ());
113+ api . setProviderAndWait (TestEventsProvider .newInitializedTestEventsProvider ());
110114
111115 return Optional .empty ();
112116 }
113117 }
114118
115- final String defaultValue = "string-value" ;
116- final OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
117119 final Client client = api .getClient ();
118- FeatureProviderTestUtils . setFeatureProvider (new DoSomethingProvider ());
120+ api . setProviderAndWait (new DoSomethingProvider ());
119121 api .addHooks (new MutatingHook ());
120122
121123 // if provider is changed during an evaluation transaction it should proceed with the original provider
@@ -132,7 +134,6 @@ public Optional before(HookContext ctx, Map hints) {
132134 @ Test
133135 void setProviderAndWaitShouldPutTheProviderInReadyState () {
134136 String domain = "domain" ;
135- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
136137 api .setProviderAndWait (domain , new TestEventsProvider ());
137138 Client client = api .getClient (domain );
138139 assertThat (client .getProviderState ()).isEqualTo (ProviderState .READY );
@@ -145,7 +146,6 @@ void setProviderAndWaitShouldPutTheProviderInReadyState() {
145146 @ Test
146147 void shouldPutTheProviderInStateErrorAfterEmittingErrorEvent () {
147148 String domain = "domain" ;
148- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
149149 TestEventsProvider provider = new TestEventsProvider ();
150150 api .setProviderAndWait (domain , provider );
151151 Client client = api .getClient (domain );
@@ -161,7 +161,6 @@ void shouldPutTheProviderInStateErrorAfterEmittingErrorEvent() {
161161 @ Test
162162 void shouldPutTheProviderInStateStaleAfterEmittingStaleEvent () {
163163 String domain = "domain" ;
164- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
165164 TestEventsProvider provider = new TestEventsProvider ();
166165 api .setProviderAndWait (domain , provider );
167166 Client client = api .getClient (domain );
@@ -177,7 +176,6 @@ void shouldPutTheProviderInStateStaleAfterEmittingStaleEvent() {
177176 @ Test
178177 void shouldPutTheProviderInStateReadyAfterEmittingReadyEvent () {
179178 String domain = "domain" ;
180- OpenFeatureAPI api = OpenFeatureAPI .getInstance ();
181179 TestEventsProvider provider = new TestEventsProvider ();
182180 api .setProviderAndWait (domain , provider );
183181 Client client = api .getClient (domain );
0 commit comments