20
20
import dev .openfeature .flagd .grpc .Schema .ResolveObjectResponse ;
21
21
import dev .openfeature .flagd .grpc .Schema .ResolveStringResponse ;
22
22
import dev .openfeature .flagd .grpc .ServiceGrpc .ServiceBlockingStub ;
23
- import dev .openfeature .javasdk .EvaluationContext ;
24
- import dev .openfeature .javasdk .FlagEvaluationDetails ;
25
- import dev .openfeature .javasdk .OpenFeatureAPI ;
26
- import dev .openfeature .javasdk .Reason ;
27
- import dev .openfeature .javasdk .Structure ;
28
- import dev .openfeature .javasdk .Value ;
23
+ import dev .openfeature .sdk .EvaluationContext ;
24
+ import dev .openfeature .sdk .FlagEvaluationDetails ;
25
+ import dev .openfeature .sdk .MutableContext ;
26
+ import dev .openfeature .sdk .MutableStructure ;
27
+ import dev .openfeature .sdk .OpenFeatureAPI ;
28
+ import dev .openfeature .sdk .Reason ;
29
+ import dev .openfeature .sdk .Structure ;
30
+ import dev .openfeature .sdk .Value ;
29
31
30
32
class FlagdProviderTest {
31
33
@@ -40,7 +42,7 @@ class FlagdProviderTest {
40
42
static final Double DOUBLE_VALUE = .5d ;
41
43
static final String INNER_STRUCT_KEY = "inner_key" ;
42
44
static final String INNER_STRUCT_VALUE = "inner_value" ;
43
- static final Structure OBJECT_VALUE = new Structure () {{
45
+ static final Structure OBJECT_VALUE = new MutableStructure () {{
44
46
add (INNER_STRUCT_KEY , INNER_STRUCT_VALUE );
45
47
}};
46
48
static final com .google .protobuf .Struct PROTOBUF_STRUCTURE_VALUE = com .google .protobuf .Struct .newBuilder ()
@@ -104,28 +106,28 @@ void resolvers_call_grpc_service_and_return_details() {
104
106
FlagEvaluationDetails <Boolean > booleanDetails = api .getClient ().getBooleanDetails (FLAG_KEY , false );
105
107
assertTrue (booleanDetails .getValue ());
106
108
assertEquals (BOOL_VARIANT , booleanDetails .getVariant ());
107
- assertEquals (DEFAULT , booleanDetails .getReason ());
109
+ assertEquals (DEFAULT . toString () , booleanDetails .getReason ());
108
110
109
111
FlagEvaluationDetails <String > stringDetails = api .getClient ().getStringDetails (FLAG_KEY , "wrong" );
110
112
assertEquals (STRING_VALUE , stringDetails .getValue ());
111
113
assertEquals (STRING_VARIANT , stringDetails .getVariant ());
112
- assertEquals (DEFAULT , stringDetails .getReason ());
114
+ assertEquals (DEFAULT . toString () , stringDetails .getReason ());
113
115
114
116
FlagEvaluationDetails <Integer > intDetails = api .getClient ().getIntegerDetails (FLAG_KEY , 0 );
115
117
assertEquals (INT_VALUE , intDetails .getValue ());
116
118
assertEquals (INT_VARIANT , intDetails .getVariant ());
117
- assertEquals (DEFAULT , intDetails .getReason ());
119
+ assertEquals (DEFAULT . toString () , intDetails .getReason ());
118
120
119
121
FlagEvaluationDetails <Double > floatDetails = api .getClient ().getDoubleDetails (FLAG_KEY , 0.1 );
120
122
assertEquals (DOUBLE_VALUE , floatDetails .getValue ());
121
123
assertEquals (DOUBLE_VARIANT , floatDetails .getVariant ());
122
- assertEquals (DEFAULT , floatDetails .getReason ());
124
+ assertEquals (DEFAULT . toString () , floatDetails .getReason ());
123
125
124
126
FlagEvaluationDetails <Value > objectDetails = api .getClient ().getObjectDetails (FLAG_KEY , new Value ());
125
127
assertEquals (INNER_STRUCT_VALUE , objectDetails .getValue ().asStructure ()
126
128
.asMap ().get (INNER_STRUCT_KEY ).asString ());
127
129
assertEquals (OBJECT_VARIANT , objectDetails .getVariant ());
128
- assertEquals (DEFAULT , objectDetails .getReason ());
130
+ assertEquals (DEFAULT . toString () , objectDetails .getReason ());
129
131
}
130
132
131
133
@ Test
@@ -147,7 +149,7 @@ void context_is_parsed_and_passed_to_grpc_service() {
147
149
add (new Value (1 ));
148
150
}};
149
151
final String STRUCT_ATTR_INNER_VALUE = "struct-inner-value" ;
150
- final Structure STRUCT_ATTR_VALUE = new Structure ().add (STRUCT_ATTR_INNER_KEY , STRUCT_ATTR_INNER_VALUE );
152
+ final Structure STRUCT_ATTR_VALUE = new MutableStructure ().add (STRUCT_ATTR_INNER_KEY , STRUCT_ATTR_INNER_VALUE );
151
153
final String DEFAULT_STRING = "DEFAULT" ;
152
154
153
155
ResolveBooleanResponse booleanResponse = ResolveBooleanResponse .newBuilder ()
@@ -170,7 +172,7 @@ void context_is_parsed_and_passed_to_grpc_service() {
170
172
171
173
OpenFeatureAPI .getInstance ().setProvider (new FlagdProvider (serviceBlockingStubMock ));
172
174
173
- EvaluationContext context = new EvaluationContext ();
175
+ MutableContext context = new MutableContext ();
174
176
context .add (BOOLEAN_ATTR_KEY , BOOLEAN_ATTR_VALUE );
175
177
context .add (INT_ATTR_KEY , INT_ATTR_VALUE );
176
178
context .add (DOUBLE_ATTR_KEY , DOUBLE_ATTR_VALUE );
@@ -181,15 +183,16 @@ void context_is_parsed_and_passed_to_grpc_service() {
181
183
FlagEvaluationDetails <Boolean > booleanDetails = api .getClient ().getBooleanDetails (FLAG_KEY , false , context );
182
184
assertTrue (booleanDetails .getValue ());
183
185
assertEquals (BOOL_VARIANT , booleanDetails .getVariant ());
184
- assertEquals (DEFAULT , booleanDetails .getReason ()); // reason should be converted from STATIC -> DEFAULT
186
+ assertEquals (DEFAULT . toString () , booleanDetails .getReason ());
185
187
}
186
188
189
+ //TODO: update this to be able unknown codes
187
190
@ Test
188
191
void reason_mapped_correctly_if_unknown () {
189
192
ResolveBooleanResponse badReasonResponse = ResolveBooleanResponse .newBuilder ()
190
193
.setValue (true )
191
194
.setVariant (BOOL_VARIANT )
192
- .setReason ("NOT_A_REAL_REASON " ) // set an invalid reason string
195
+ .setReason ("UNKNOWN " ) // set an invalid reason string
193
196
.build ();
194
197
195
198
ServiceBlockingStub serviceBlockingStubMock = mock (ServiceBlockingStub .class );
@@ -198,7 +201,7 @@ void reason_mapped_correctly_if_unknown() {
198
201
OpenFeatureAPI .getInstance ().setProvider (new FlagdProvider (serviceBlockingStubMock ));
199
202
200
203
FlagEvaluationDetails <Boolean > booleanDetails = api .getClient ()
201
- .getBooleanDetails (FLAG_KEY , false , new EvaluationContext ());
202
- assertEquals (Reason .UNKNOWN , booleanDetails .getReason ()); // reason should be converted to UNKNOWN
204
+ .getBooleanDetails (FLAG_KEY , false , new MutableContext ());
205
+ assertEquals (Reason .UNKNOWN . toString () , booleanDetails .getReason ()); // reason should be converted to UNKNOWN
203
206
}
204
207
}
0 commit comments