示例#1
0
        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");
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }