public void ExplicitExcludeUser() { var s = new SegmentBuilder("test").Version(1).Excluded("foo").Build(); var u = User.WithKey("foo"); Assert.False(SegmentMatchesUser(s, u)); }
public void ExplicitIncludeHasPrecedence() { var s = new SegmentBuilder("test").Version(1).Included("foo").Excluded("foo").Build(); var u = User.WithKey("foo"); Assert.True(SegmentMatchesUser(s, u)); }
public void SegmentMatchClauseRetrievesSegmentFromStore() { var segment = new SegmentBuilder("segkey").Version(1).Included("foo").Build(); var evaluator = BasicEvaluator.WithStoredSegments(segment); var f = new FeatureFlagBuilder("key").BooleanMatchingSegment("segkey").Build(); var user = User.WithKey("foo"); Assert.Equal(LdValue.Of(true), evaluator.Evaluate(f, user, EventFactory.Default).Result.Value); }
public void MatchingRuleWithZeroRollout() { var clause = new ClauseBuilder().Attribute("email").Op("in").Values(LdValue.Of("*****@*****.**")).Build(); var rule = new SegmentRule(new List <Clause> { clause }, 0, null); var s = new SegmentBuilder("test").Version(1).Rules(rule).Build(); var u = User.Builder("foo").Email("*****@*****.**").Build(); Assert.False(SegmentMatchesUser(s, u)); }
public void NonMatchingRuleWithMultipleClauses() { var clause1 = new ClauseBuilder().Attribute("email").Op("in").Values(LdValue.Of("*****@*****.**")).Build(); var clause2 = new ClauseBuilder().Attribute("name").Op("in").Values(LdValue.Of("bill")).Build(); var rule = new SegmentRule(new List <Clause> { clause1, clause2 }, null, null); var s = new SegmentBuilder("test").Version(1).Rules(rule).Build(); var u = User.Builder("foo").Email("*****@*****.**").Name("bob").Build(); Assert.False(SegmentMatchesUser(s, u)); }