3030import io .grpc .Deadline ;
3131import org .junit .jupiter .api .BeforeAll ;
3232import org .junit .jupiter .api .Test ;
33+ import org .mockito .ArgumentMatcher ;
3334import org .mockito .MockedStatic ;
3435
3536import java .lang .reflect .Field ;
@@ -303,7 +304,6 @@ void resolvers_should_not_cache_responses_if_event_stream_not_alive() {
303304
304305 @ Test
305306 void context_is_parsed_and_passed_to_grpc_service () {
306-
307307 final String BOOLEAN_ATTR_KEY = "bool-attr" ;
308308 final String INT_ATTR_KEY = "int-attr" ;
309309 final String STRING_ATTR_KEY = "string-attr" ;
@@ -313,9 +313,9 @@ void context_is_parsed_and_passed_to_grpc_service() {
313313 final String STRUCT_ATTR_INNER_KEY = "struct-inner-key" ;
314314
315315 final Boolean BOOLEAN_ATTR_VALUE = true ;
316- final Integer INT_ATTR_VALUE = 1 ;
316+ final int INT_ATTR_VALUE = 1 ;
317317 final String STRING_ATTR_VALUE = "str" ;
318- final Double DOUBLE_ATTR_VALUE = 0.5d ;
318+ final double DOUBLE_ATTR_VALUE = 0.5d ;
319319 final List <Value > LIST_ATTR_VALUE = new ArrayList <Value >() {
320320 {
321321 add (new Value (1 ));
@@ -335,23 +335,30 @@ void context_is_parsed_and_passed_to_grpc_service() {
335335 when (serviceBlockingStubMock .withDeadlineAfter (anyLong (), any (TimeUnit .class )))
336336 .thenReturn (serviceBlockingStubMock );
337337 when (serviceBlockingStubMock .resolveBoolean (argThat (
338- x -> STRING_ATTR_VALUE .equals (x .getContext ().getFieldsMap ().get (STRING_ATTR_KEY ).getStringValue ())
339- && INT_ATTR_VALUE == x .getContext ().getFieldsMap ().get (INT_ATTR_KEY ).getNumberValue ()
340- && DOUBLE_ATTR_VALUE == x .getContext ().getFieldsMap ().get (DOUBLE_ATTR_KEY ).getNumberValue ()
341- && LIST_ATTR_VALUE .get (0 ).asInteger () == x .getContext ().getFieldsMap ()
342- .get (LIST_ATTR_KEY ).getListValue ().getValuesList ().get (0 ).getNumberValue ()
343- && x .getContext ().getFieldsMap ().get (BOOLEAN_ATTR_KEY ).getBoolValue ()
344- && STRUCT_ATTR_INNER_VALUE .equals (x .getContext ().getFieldsMap ()
345- .get (STRUCT_ATTR_KEY ).getStructValue ().getFieldsMap ().get (STRUCT_ATTR_INNER_KEY )
346- .getStringValue ()))))
347- .thenReturn (booleanResponse );
338+ x -> {
339+ final Struct struct = x .getContext ();
340+ final Map <String , com .google .protobuf .Value > valueMap = struct .getFieldsMap ();
341+
342+ return STRING_ATTR_VALUE .equals (valueMap .get (STRING_ATTR_KEY ).getStringValue ())
343+ && INT_ATTR_VALUE == valueMap .get (INT_ATTR_KEY ).getNumberValue ()
344+ && DOUBLE_ATTR_VALUE == valueMap .get (DOUBLE_ATTR_KEY ).getNumberValue ()
345+ && valueMap .get (BOOLEAN_ATTR_KEY ).getBoolValue ()
346+ && "MY_TARGETING_KEY" .equals (valueMap .get ("targetingKey" ).getStringValue ())
347+ && LIST_ATTR_VALUE .get (0 ).asInteger () ==
348+ valueMap .get (LIST_ATTR_KEY ).getListValue ().getValuesList ().get (0 ).getNumberValue ()
349+ && STRUCT_ATTR_INNER_VALUE .equals (
350+ valueMap .get (STRUCT_ATTR_KEY ).getStructValue ().getFieldsMap ()
351+ .get (STRUCT_ATTR_INNER_KEY ).getStringValue ());
352+ }
353+ ))
354+ ).thenReturn (booleanResponse );
348355
349356 GrpcConnector grpc = mock (GrpcConnector .class );
350357 when (grpc .getResolver ()).thenReturn (serviceBlockingStubMock );
351358
352359 OpenFeatureAPI .getInstance ().setProvider (createProvider (grpc ));
353360
354- MutableContext context = new MutableContext ();
361+ final MutableContext context = new MutableContext ("MY_TARGETING_KEY" );
355362 context .add (BOOLEAN_ATTR_KEY , BOOLEAN_ATTR_VALUE );
356363 context .add (INT_ATTR_KEY , INT_ATTR_VALUE );
357364 context .add (DOUBLE_ATTR_KEY , DOUBLE_ATTR_VALUE );
0 commit comments