diff --git a/providers/configcat/pom.xml b/providers/configcat/pom.xml
index 14fafdc38..fe937b672 100644
--- a/providers/configcat/pom.xml
+++ b/providers/configcat/pom.xml
@@ -10,7 +10,7 @@
dev.openfeature.contrib.providers
configcat
- 0.0.2
+ 0.1.0
configcat
configcat provider for Java
@@ -20,7 +20,7 @@
com.configcat
configcat-java-client
- 8.4.0
+ 9.0.0
diff --git a/providers/configcat/src/main/java/dev/openfeature/contrib/providers/configcat/ContextTransformer.java b/providers/configcat/src/main/java/dev/openfeature/contrib/providers/configcat/ContextTransformer.java
index 51b39d6b5..75ab0db41 100644
--- a/providers/configcat/src/main/java/dev/openfeature/contrib/providers/configcat/ContextTransformer.java
+++ b/providers/configcat/src/main/java/dev/openfeature/contrib/providers/configcat/ContextTransformer.java
@@ -16,7 +16,7 @@ public class ContextTransformer {
protected static User transform(EvaluationContext ctx) {
User.Builder userBuilder = User.newBuilder();
- Map customMap = new HashMap<>();
+ Map customMap = new HashMap<>();
ctx.asObjectMap().forEach((k, v) -> {
switch (k) {
case CONTEXT_COUNTRY:
diff --git a/providers/configcat/src/test/java/dev/openfeature/contrib/providers/configcat/ConfigCatProviderTest.java b/providers/configcat/src/test/java/dev/openfeature/contrib/providers/configcat/ConfigCatProviderTest.java
index a31dbb5a7..91ac4adfe 100644
--- a/providers/configcat/src/test/java/dev/openfeature/contrib/providers/configcat/ConfigCatProviderTest.java
+++ b/providers/configcat/src/test/java/dev/openfeature/contrib/providers/configcat/ConfigCatProviderTest.java
@@ -12,6 +12,7 @@
import dev.openfeature.sdk.exceptions.GeneralError;
import dev.openfeature.sdk.exceptions.ProviderNotReadyError;
import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -26,6 +27,7 @@
* ConfigCatProvider test, based on local config file evaluation.
* Configuration file test by ConfigCat tests.
*/
+@Slf4j
class ConfigCatProviderTest {
public static final String FLAG_NAME = "enabledFeature";
@@ -43,7 +45,7 @@ class ConfigCatProviderTest {
@BeforeAll
static void setUp() {
- String sdkKey = "test";
+ String sdkKey = "configcat-sdk-1/TEST_KEY-0123456789012/1234567890123456789012";
ConfigCatProviderConfig configCatProviderConfig = ConfigCatProviderConfig.builder().sdkKey(sdkKey)
.options(options ->
options.flagOverrides(
@@ -182,7 +184,7 @@ void getStringEvaluationByUser() {
@SneakyThrows
@Test
void shouldThrowIfNotInitialized() {
- ConfigCatProviderConfig configCatProviderConfig = ConfigCatProviderConfig.builder().sdkKey("test").build();
+ ConfigCatProviderConfig configCatProviderConfig = ConfigCatProviderConfig.builder().sdkKey("configcat-sdk-1/TEST_KEY-0123456789012/1234567890123456789012").build();
ConfigCatProvider tempConfigCatProvider = new ConfigCatProvider(configCatProviderConfig);
assertThrows(ProviderNotReadyError.class, ()-> tempConfigCatProvider.getBooleanEvaluation("fail_not_initialized", false, new ImmutableContext()));
@@ -205,7 +207,7 @@ void eventsTest() {
configCatProvider.emitProviderReady(ProviderEventDetails.builder().build());
configCatProvider.emitProviderError(ProviderEventDetails.builder().build());
configCatProvider.emitProviderConfigurationChanged(ProviderEventDetails.builder().build());
- assertDoesNotThrow(() -> {configCatProvider.getState();});
+ assertDoesNotThrow(() -> log.debug("provider state: {}", configCatProvider.getState()));
}
@SneakyThrows
@@ -223,7 +225,7 @@ void contextTransformTest() {
evaluationContext.add("Email", email);
evaluationContext.add(customPropertyKey, customPropertyValue);
- HashMap customMap = new HashMap<>();
+ HashMap customMap = new HashMap<>();
customMap.put(customPropertyKey, customPropertyValue);
User expectedUser = User.newBuilder().email(email).country(country).custom(customMap).build(userId);
User transformedUser = ContextTransformer.transform(evaluationContext);
diff --git a/providers/configcat/src/test/resources/features.json b/providers/configcat/src/test/resources/features.json
index 09093c148..842f41c4b 100644
--- a/providers/configcat/src/test/resources/features.json
+++ b/providers/configcat/src/test/resources/features.json
@@ -1,88 +1,199 @@
{
+ "p": {
+ "s": "80xCU/SlDz1lCiWFaxIBjyJeJecWjq46T4eu6GtozkM="
+ },
"f": {
"enabledFeature": {
- "v": true
+ "t": 0,
+ "v": {
+ "b": true
+ }
},
"intSetting": {
- "v": 5
+ "t": 2,
+ "v": {
+ "i": 5
+ }
},
"doubleSetting": {
- "v": 3.14
+ "t": 3,
+ "v": {
+ "d": 3.14
+ }
},
"stringSetting": {
- "v": "test"
+ "t": 1,
+ "v": {
+ "s": "test"
+ }
},
"userIdMatching": {
- "v": false,
+ "t": 0,
"r": [
{
- "o": 0,
- "a": "Identifier",
- "t": 2,
- "c": "@matching.com",
- "v": true
+ "c": [
+ {
+ "u": {
+ "a": "Identifier",
+ "c": 2,
+ "l": [
+ "@matching.com"
+ ]
+ }
+ }
+ ],
+ "s": {
+ "v": {
+ "b": true
+ },
+ "i": "bcfb84a7"
+ }
}
- ]
+ ],
+ "v": {
+ "b": false
+ },
+ "i": "430bded3"
},
"emailMatching": {
- "v": false,
+ "t": 0,
"r": [
{
- "o": 0,
- "a": "Email",
- "t": 2,
- "c": "@matching.com",
- "v": true
+ "c": [
+ {
+ "u": {
+ "a": "Email",
+ "c": 2,
+ "l": [
+ "@matching.com"
+ ]
+ }
+ }
+ ],
+ "s": {
+ "v": {
+ "b": true
+ },
+ "i": "bcfb84a7"
+ }
}
- ]
+ ],
+ "v": {
+ "b": false
+ },
+ "i": "430bded3"
},
"countryMatching": {
- "v": false,
+ "t": 0,
"r": [
{
- "o": 0,
- "a": "Country",
- "t": 2,
- "c": "country1",
- "v": true
+ "c": [
+ {
+ "u": {
+ "a": "Country",
+ "c": 2,
+ "l": [
+ "country1"
+ ]
+ }
+ }
+ ],
+ "s": {
+ "v": {
+ "b": true
+ },
+ "i": "bcfb84a7"
+ }
}
- ]
+ ],
+ "v": {
+ "b": false
+ },
+ "i": "430bded3"
},
"userIdMatchingInt": {
- "v": 111,
+ "t": 2,
"r": [
{
- "o": 0,
- "a": "Identifier",
- "t": 2,
- "c": "@matching.com",
- "v": 123
+ "c": [
+ {
+ "u": {
+ "a": "Identifier",
+ "c": 2,
+ "l": [
+ "@matching.com"
+ ]
+ }
+ }
+ ],
+ "s": {
+ "v": {
+ "i": 123
+ },
+ "i": "bcfb84a7"
+ }
}
- ]
+ ],
+ "v": {
+ "i": 111
+ },
+ "i": "430bded3"
},
"userIdMatchingDouble": {
- "v": 0.1,
+ "t": 3,
"r": [
{
- "o": 0,
- "a": "Identifier",
- "t": 2,
- "c": "@matching.com",
- "v": 1.23
+ "c": [
+ {
+ "u": {
+ "a": "Identifier",
+ "c": 2,
+ "l": [
+ "@matching.com"
+ ]
+ }
+ }
+ ],
+ "s": {
+ "v": {
+ "d": 1.23
+ },
+ "i": "bcfb84a7"
+ }
}
- ]
+ ],
+ "v": {
+ "d": 0.1
+ },
+ "i": "430bded3"
},
"userIdMatchingStr": {
- "v": "fallback",
+ "t": 1,
"r": [
{
- "o": 0,
- "a": "Identifier",
- "t": 2,
- "c": "@matching.com",
- "v": "expected"
+ "c": [
+ {
+ "u": {
+ "a": "Identifier",
+ "c": 2,
+ "l": [
+ "@matching.com"
+ ]
+ }
+ }
+ ],
+ "s": {
+ "v": {
+ "s": "expected"
+ },
+ "i": "bcfb84a7"
+ }
}
- ]
+ ],
+ "v": {
+ "s": "fallback"
+ },
+ "i": "430bded3"
}
}
}
\ No newline at end of file