public void SendsEventsOnInitForFlagsWhosePrerequisitesChanged() { var dataBuilder = new DataSetBuilder().Flags( new FeatureFlagBuilder("flag1").Version(1).Build(), new FeatureFlagBuilder("flag2").Version(1) .Prerequisites(new Prerequisite("flag1", 0)).Build(), new FeatureFlagBuilder("flag3").Version(1).Build(), new FeatureFlagBuilder("flag4").Version(1) .Prerequisites(new Prerequisite("flag1", 0)).Build(), new FeatureFlagBuilder("flag5").Version(1) .Prerequisites(new Prerequisite("flag4", 0)).Build(), new FeatureFlagBuilder("flag6").Version(1).Build() ); var updates = MakeInstance(); updates.Init(dataBuilder.Build()); var eventSink = new EventSink <FlagChangeEvent>(); updates.FlagChanged += eventSink.Add; dataBuilder.Flags(new FeatureFlagBuilder("flag1").Version(2).Build()); updates.Init(dataBuilder.Build()); ExpectFlagChangeEvents(eventSink, "flag1", "flag2", "flag4", "flag5"); }
public void SendsEventsOnInitForNewlyAddedFlags() { var dataBuilder = new DataSetBuilder().Flags(flag1).Segments(segment1); var updates = MakeInstance(); updates.Init(dataBuilder.Build()); var eventSink = new EventSink <FlagChangeEvent>(); updates.FlagChanged += eventSink.Add; dataBuilder.Flags(flag2).Segments(segment2); updates.Init(dataBuilder.Build()); ExpectFlagChangeEvents(eventSink, flag2.Key); }
public void SendsEventsOnInitForUpdatedFlag() { var dataBuilder = new DataSetBuilder().Flags(flag1, flag2).Segments(segment1, segment2); var updates = MakeInstance(); updates.Init(dataBuilder.Build()); var eventSink = new EventSink <FlagChangeEvent>(); updates.FlagChanged += eventSink.Add; dataBuilder.Flags(flag2v2) // modified flag .Segments(segment2v2); // modified segment, but it's irrelevant updates.Init(dataBuilder.Build()); ExpectFlagChangeEvents(eventSink, flag2v2.Key); }