public void SendsEventsOnInitForFlagsWhoseSegmentsChanged() { var dataBuilder = new DataSetBuilder().Flags( new FeatureFlagBuilder("flag1").Version(1).Build(), new FeatureFlagBuilder("flag2").Version(1) .Rules( new RuleBuilder().Clauses( new ClauseBuilder().Op("segmentMatch").Values(LdValue.Of(segment1.Key)).Build() ).Build() ) .Build(), new FeatureFlagBuilder("flag3").Version(1).Build(), new FeatureFlagBuilder("flag4").Version(1) .Prerequisites(new Prerequisite("flag2", 0)).Build() ) .Segments(segment1, segment2); var updates = MakeInstance(); updates.Init(dataBuilder.Build()); var eventSink = new EventSink <FlagChangeEvent>(); updates.FlagChanged += eventSink.Add; dataBuilder.Segments(segment1v2); updates.Init(dataBuilder.Build()); ExpectFlagChangeEvents(eventSink, "flag2", "flag4"); }
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 CorrectDatasetReturned() { var datasetBuilder = new DataSetBuilder().AddDataTable("Users") .AddColumn("Id", typeof(int)) .AddColumn("Firstname") .AddColumn("Lastname") .AddColumn("DateOfBirth", typeof(DateTime)) .AddColumn("IsActive", typeof(bool)) .AddRow(1, "Andy", "Robinson", "1980-04-06", true) .AddRow(2, "Dave", "Clarke", "1970-03-28", true) .AddDataTable("Logins") .AddColumn("Id", typeof(Guid)) .AddColumn("UserId", typeof(int)) .AddColumn("LoginDate", typeof(DateTime)) .AddRow(Guid.NewGuid(), 1, "2014-12-19"); var result = datasetBuilder.Build(); Assert.That(result.Tables.Count, Is.EqualTo(2)); Assert.That(result.Tables[0].TableName, Is.EqualTo("Users")); Assert.That(result.Tables[1].TableName, Is.EqualTo("Logins")); var users = result.Tables["Users"]; Assert.That(users.Rows.Count, Is.EqualTo(2)); Assert.That(users.Rows[0][0].ToString(), Is.EqualTo("Andy")); Assert.That(users.Rows[0][1].ToString(), Is.EqualTo("Robinson")); Assert.That(users.Rows[0][2].ToString(), Is.EqualTo("")); }
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); }
public void SendsEventOnUpdateForNewlyAddedFlag() { var dataBuilder = new DataSetBuilder().Flags(flag1).Segments(segment1); var updates = MakeInstance(); updates.Init(dataBuilder.Build()); var eventSink = new EventSink <FlagChangeEvent>(); updates.FlagChanged += eventSink.Add; updates.Upsert(DataModel.Features, flag2.Key, DescriptorOf(flag2)); ExpectFlagChangeEvents(eventSink, flag2.Key); }
public void DoesNotSendEventOnUpdateIfItemWasNotReallyUpdated() { var dataBuilder = new DataSetBuilder().Flags(flag1, flag2); var updates = MakeInstance(); updates.Init(dataBuilder.Build()); var eventSink = new EventSink <FlagChangeEvent>(); updates.FlagChanged += eventSink.Add; updates.Upsert(DataModel.Features, flag2.Key, DescriptorOf(flag2)); eventSink.ExpectNoValue(); }
public void EmptyDatasetReturnedWhenNoSetupPerformed() { var datasetBuilder = new DataSetBuilder(); Assert.IsInstanceOf <DataSet>(datasetBuilder.Build()); }