3535import java .util .HashSet ;
3636import java .util .Map ;
3737
38+ import static org .mockito .Mockito .when ;
39+
3840public class FeatureFlagWorkerImpTest {
3941
4042 private static final FlagSetsFilter FLAG_SETS_FILTER = new FlagSetsFilterImpl (new HashSet <>());
@@ -135,15 +137,17 @@ public void testRefreshRuleBasedSegmentWithCorrectFF() {
135137 Synchronizer synchronizer = Mockito .mock (SynchronizerImp .class );
136138 SplitCacheProducer splitCacheProducer = Mockito .mock (SplitCacheProducer .class );
137139 RuleBasedSegmentCache ruleBasedSegmentCache = Mockito .mock (RuleBasedSegmentCache .class );
140+ HashSet <String > rbs = new HashSet <>();
141+ rbs .add ("sample_rule_based_segment" );
142+ when (ruleBasedSegmentCache .contains (rbs )).thenReturn (false );
138143 TelemetryStorage telemetryRuntimeProducer = new InMemoryTelemetryStorage ();
139144 FeatureFlagWorkerImp featureFlagsWorker = new FeatureFlagWorkerImp (synchronizer , splitParser , ruleBasedSegmentParser , splitCacheProducer , ruleBasedSegmentCache , telemetryRuntimeProducer , FLAG_SETS_FILTER );
140145 String notification = "{\" id\" :\" vQQ61wzBRO:0:0\" ,\" clientId\" :\" pri:MTUxNzg3MDg1OQ==\" ,\" timestamp\" :1684265694676,\" encoding\" :\" json\" ,\" channel\" :\" NzM2MDI5Mzc0_MjkyNTIzNjczMw==_splits\" ,\" data\" :\" {\\ \" type\\ \" :\\ \" SPLIT_UPDATE\\ \" ,\\ \" changeNumber\\ \" :1684265694505,\\ \" pcn\\ \" :0,\\ \" c\\ \" :0,\\ \" d\\ \" :\\ \" eyJjaGFuZ2VOdW1iZXIiOiAxMCwgInRyYWZmaWNUeXBlTmFtZSI6ICJ1c2VyIiwgIm5hbWUiOiAicmJzX2ZsYWciLCAidHJhZmZpY0FsbG9jYXRpb24iOiAxMDAsICJ0cmFmZmljQWxsb2NhdGlvblNlZWQiOiAxODI4Mzc3MzgwLCAic2VlZCI6IC0yODY2MTc5MjEsICJzdGF0dXMiOiAiQUNUSVZFIiwgImtpbGxlZCI6IGZhbHNlLCAiZGVmYXVsdFRyZWF0bWVudCI6ICJvZmYiLCAiYWxnbyI6IDIsICJjb25kaXRpb25zIjogW3siY29uZGl0aW9uVHlwZSI6ICJST0xMT1VUIiwgIm1hdGNoZXJHcm91cCI6IHsiY29tYmluZXIiOiAiQU5EIiwgIm1hdGNoZXJzIjogW3sia2V5U2VsZWN0b3IiOiB7InRyYWZmaWNUeXBlIjogInVzZXIifSwgIm1hdGNoZXJUeXBlIjogIklOX1JVTEVfQkFTRURfU0VHTUVOVCIsICJuZWdhdGUiOiBmYWxzZSwgInVzZXJEZWZpbmVkU2VnbWVudE1hdGNoZXJEYXRhIjogeyJzZWdtZW50TmFtZSI6ICJzYW1wbGVfcnVsZV9iYXNlZF9zZWdtZW50In19XX0sICJwYXJ0aXRpb25zIjogW3sidHJlYXRtZW50IjogIm9uIiwgInNpemUiOiAxMDB9LCB7InRyZWF0bWVudCI6ICJvZmYiLCAic2l6ZSI6IDB9XSwgImxhYmVsIjogImluIHJ1bGUgYmFzZWQgc2VnbWVudCBzYW1wbGVfcnVsZV9iYXNlZF9zZWdtZW50In0sIHsiY29uZGl0aW9uVHlwZSI6ICJST0xMT1VUIiwgIm1hdGNoZXJHcm91cCI6IHsiY29tYmluZXIiOiAiQU5EIiwgIm1hdGNoZXJzIjogW3sia2V5U2VsZWN0b3IiOiB7InRyYWZmaWNUeXBlIjogInVzZXIifSwgIm1hdGNoZXJUeXBlIjogIkFMTF9LRVlTIiwgIm5lZ2F0ZSI6IGZhbHNlfV19LCAicGFydGl0aW9ucyI6IFt7InRyZWF0bWVudCI6ICJvbiIsICJzaXplIjogMH0sIHsidHJlYXRtZW50IjogIm9mZiIsICJzaXplIjogMTAwfV0sICJsYWJlbCI6ICJkZWZhdWx0IHJ1bGUifV0sICJjb25maWd1cmF0aW9ucyI6IHt9LCAic2V0cyI6IFtdLCAiaW1wcmVzc2lvbnNEaXNhYmxlZCI6IGZhbHNlfQ==\\ \" }\" }" ;
141146 RawMessageNotification rawMessageNotification = Json .fromJson (notification , RawMessageNotification .class );
142147 GenericNotificationData genericNotificationData = Json .fromJson (rawMessageNotification .getData (), GenericNotificationData .class );
143148 FeatureFlagChangeNotification featureFlagChangeNotification = new FeatureFlagChangeNotification (genericNotificationData );
149+
144150 featureFlagsWorker .executeRefresh (featureFlagChangeNotification );
145- UpdatesFromSSE updatesFromSSE = telemetryRuntimeProducer .popUpdatesFromSSE ();
146- Assert .assertEquals (1 , updatesFromSSE .getSplits ());
147151 Mockito .verify (synchronizer , Mockito .times (0 )).refreshSplits (0L , 1684265694505L );
148152 }
149153}
0 commit comments