Skip to content

Commit 76dd9ad

Browse files
committed
fixup: more tests for safety with claude.ai
Signed-off-by: Simon Schrottner <[email protected]>
1 parent 2410dc9 commit 76dd9ad

23 files changed

+1707
-164
lines changed

openfeature-api/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
<name>OpenFeature Java API</name>
1616
<description>OpenFeature Java API - Core contracts and interfaces for feature flag evaluation</description>
1717

18+
<version>0.0.1</version>
19+
1820
<properties>
1921
<module-name>dev.openfeature.api</module-name>
2022
</properties>

openfeature-api/src/main/java/dev/openfeature/api/AbstractEventProvider.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ public void shutdown() {
7171
* @param details The details of the event
7272
*/
7373
public Awaitable emit(final ProviderEvent event, final ProviderEventDetails details) {
74+
if (eventEmitter == null) {
75+
return null;
76+
}
7477
return eventEmitter.emit(event, details);
7578
}
7679

openfeature-api/src/main/java/dev/openfeature/api/evaluation/ProviderEvaluation.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package dev.openfeature.api.evaluation;
22

33
import dev.openfeature.api.ErrorCode;
4-
import dev.openfeature.api.Reason;
54
import dev.openfeature.api.types.Metadata;
65

76
/**
@@ -17,10 +16,10 @@ static <T> ProviderEvaluation<T> of(T value, String variant, String reason, Meta
1716

1817
static <T> ProviderEvaluation<T> of(
1918
T value, String variant, String reason, ErrorCode errorCode, String errorMessage, Metadata flagMetadata) {
20-
return new DefaultProviderEvaluation<T>(value, variant, reason, errorCode, errorMessage, flagMetadata);
19+
return new DefaultProviderEvaluation<>(value, variant, reason, errorCode, errorMessage, flagMetadata);
2120
}
2221

23-
static <T> ProviderEvaluation<T> of(ErrorCode errorCode, String errorMessage) {
24-
return of(null, null, Reason.ERROR.toString(), errorCode, errorMessage, null);
22+
static <T> ProviderEvaluation<T> of(ErrorCode errorCode, String errorMessage, Metadata flagMetadata) {
23+
return of(null, null, null, errorCode, errorMessage, flagMetadata);
2524
}
2625
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package dev.openfeature.api.lifecycle;
2+
3+
import dev.openfeature.api.FlagValueType;
4+
import dev.openfeature.api.evaluation.EvaluationContext;
5+
import dev.openfeature.api.types.ClientMetadata;
6+
import dev.openfeature.api.types.ProviderMetadata;
7+
8+
/**
9+
* A default implementation of {@link HookContext}.
10+
*/
11+
final class DefaultHookContext<T> implements HookContext<T> {
12+
13+
private final String flagKey;
14+
private final T defaultValue;
15+
private final FlagValueType type;
16+
private final ProviderMetadata providerMetadata;
17+
private final ClientMetadata clientMetadata;
18+
private final EvaluationContext evaluationContext;
19+
private final HookData hookData = new DefaultHookData();
20+
21+
DefaultHookContext(
22+
String flagKey,
23+
T defaultValue,
24+
FlagValueType type,
25+
ProviderMetadata providerMetadata,
26+
ClientMetadata clientMetadata,
27+
EvaluationContext evaluationContext) {
28+
this.flagKey = flagKey;
29+
this.defaultValue = defaultValue;
30+
this.type = type;
31+
this.providerMetadata = providerMetadata;
32+
this.clientMetadata = clientMetadata;
33+
this.evaluationContext = evaluationContext;
34+
}
35+
36+
@Override
37+
public String getFlagKey() {
38+
return flagKey;
39+
}
40+
41+
@Override
42+
public FlagValueType getType() {
43+
return type;
44+
}
45+
46+
@Override
47+
public T getDefaultValue() {
48+
return defaultValue;
49+
}
50+
51+
@Override
52+
public EvaluationContext getCtx() {
53+
return evaluationContext;
54+
}
55+
56+
@Override
57+
public ClientMetadata getClientMetadata() {
58+
return clientMetadata;
59+
}
60+
61+
@Override
62+
public ProviderMetadata getProviderMetadata() {
63+
return providerMetadata;
64+
}
65+
66+
@Override
67+
public HookData getHookData() {
68+
return hookData;
69+
}
70+
}

openfeature-api/src/main/java/dev/openfeature/api/lifecycle/DefaultHookData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/**
77
* Default implementation of HookData.
88
*/
9-
class DefaultHookData implements HookData {
9+
final class DefaultHookData implements HookData {
1010
Map<String, Object> data;
1111

1212
@Override

openfeature-api/src/main/java/dev/openfeature/api/lifecycle/HookContext.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,17 @@
1111
*/
1212
public interface HookContext<T> {
1313

14+
static <T> HookContext<T> of(
15+
final String flagKey,
16+
final T defaultValue,
17+
FlagValueType type,
18+
ProviderMetadata providerMetadata,
19+
ClientMetadata clientMetadata,
20+
EvaluationContext evaluationContext) {
21+
return new DefaultHookContext<>(
22+
flagKey, defaultValue, type, providerMetadata, clientMetadata, evaluationContext);
23+
}
24+
1425
String getFlagKey();
1526

1627
FlagValueType getType();
@@ -23,7 +34,5 @@ public interface HookContext<T> {
2334

2435
ProviderMetadata getProviderMetadata();
2536

26-
default HookData getHookData() {
27-
return null;
28-
}
37+
HookData getHookData();
2938
}

0 commit comments

Comments
 (0)