61 lines
2.3 KiB
Java
61 lines
2.3 KiB
Java
package dev.openfeature.javasdk;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
import org.mockito.Mockito;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
import static org.mockito.Mockito.times;
|
|
import static org.mockito.Mockito.verify;
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
class DeveloperExperienceTest {
|
|
transient String flagKey = "mykey";
|
|
@Test void simpleBooleanFlag() {
|
|
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
|
|
api.setProvider(new NoOpProvider());
|
|
Client client = api.getClient();
|
|
Boolean retval = client.getBooleanValue(flagKey, false);
|
|
assertFalse(retval);
|
|
}
|
|
|
|
@Test void clientHooks() {
|
|
Hook<Boolean> exampleHook = (Hook<Boolean>) Mockito.mock(Hook.class);
|
|
|
|
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
|
|
api.setProvider(new NoOpProvider());
|
|
Client client = api.getClient();
|
|
client.addHooks(exampleHook);
|
|
Boolean retval = client.getBooleanValue(flagKey, false);
|
|
verify(exampleHook, times(1)).finallyAfter(any(), any());
|
|
assertFalse(retval);
|
|
}
|
|
|
|
@Test void evalHooks() {
|
|
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());
|
|
Client client = api.getClient();
|
|
client.addHooks(clientHook);
|
|
Boolean retval = client.getBooleanValue(flagKey, false, null,
|
|
FlagEvaluationOptions.builder().hook(evalHook).build());
|
|
verify(clientHook, times(1)).finallyAfter(any(), any());
|
|
verify(evalHook, times(1)).finallyAfter(any(), any());
|
|
assertFalse(retval);
|
|
}
|
|
|
|
@Test void brokenProvider() {
|
|
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
|
|
api.setProvider(new AlwaysBrokenProvider());
|
|
Client client = api.getClient();
|
|
FlagEvaluationDetails<Boolean> retval = client.getBooleanDetails(flagKey, false);
|
|
assertEquals(ErrorCode.GENERAL, retval.getErrorCode());
|
|
assertEquals(Reason.ERROR, retval.getReason());
|
|
assertFalse(retval.getValue());
|
|
}
|
|
}
|