Validate error flow for broken providers
This commit is contained in:
parent
c12d0cbc75
commit
19802bd26c
|
|
@ -1,8 +1,8 @@
|
|||
package javasdk;
|
||||
|
||||
import javasdk.exceptions.ParseError;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.internal.matchers.Any;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
|
|
@ -10,6 +10,7 @@ import static org.mockito.Mockito.times;
|
|||
import static org.mockito.Mockito.verify;
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public class DeveloperExperienceTest {
|
||||
@Test public void simpleBooleanFlag() {
|
||||
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
|
||||
|
|
@ -20,7 +21,7 @@ public class DeveloperExperienceTest {
|
|||
}
|
||||
|
||||
@Test public void clientHooks() {
|
||||
Hook<Boolean> exampleHook = Mockito.mock(Hook.class);
|
||||
Hook<Boolean> exampleHook = (Hook<Boolean>) Mockito.mock(Hook.class);
|
||||
|
||||
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
|
||||
api.setProvider(new NoOpProvider());
|
||||
|
|
@ -32,8 +33,8 @@ public class DeveloperExperienceTest {
|
|||
}
|
||||
|
||||
@Test public void evalHooks() {
|
||||
Hook<Boolean> clientHook = Mockito.mock(Hook.class);
|
||||
Hook<Boolean> evalHook = Mockito.mock(Hook.class);
|
||||
Hook<Boolean> clientHook = (Hook<Boolean>) Mockito.mock(Hook.class);
|
||||
Hook<Boolean> evalHook = (Hook<Boolean>) Mockito.mock(Hook.class);
|
||||
|
||||
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
|
||||
api.setProvider(new NoOpProvider());
|
||||
|
|
@ -45,4 +46,22 @@ public class DeveloperExperienceTest {
|
|||
verify(evalHook, times(1)).afterAll(any());
|
||||
assertEquals(false, retval);
|
||||
}
|
||||
|
||||
@Test public void brokenProvider() {
|
||||
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
|
||||
api.setProvider(new FeatureProvider() {
|
||||
@Override
|
||||
public ProviderEvaluation<Boolean> getBooleanEvaluation(String key, Boolean defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) {
|
||||
throw new ParseError();
|
||||
}
|
||||
@Override public String getName() { return null; }
|
||||
@Override public ProviderEvaluation<String> getStringEvaluation(String key, String defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) { return null; }
|
||||
@Override public ProviderEvaluation<Long> getNumberEvaluation(String key, Long defaultValue, EvaluationContext ctx, FlagEvaluationOptions options) {return null;}
|
||||
});
|
||||
Client client = api.getClient();
|
||||
FlagEvaluationDetails<Boolean> retval = client.getBooleanDetails("mykey", false);
|
||||
assertEquals(ErrorCode.PARSE_ERROR, retval.getErrorCode());
|
||||
assertEquals(Reason.ERROR, retval.getReason());
|
||||
assertEquals(false, retval.getValue());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue