public void should_be_disabled_when_missing_user_id()
        {
            var context = UnleashContext.New().Build();
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            gradualRolloutStrategy.IsEnabled(new Dictionary <string, string>(), context).Should().BeFalse();
        }
        public void should_not_be_enabled_when_0percent_rollout()
        {
            var context = UnleashContext.New().SessionId("1574576830").Build();
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            var parameters = buildParams(0, "innfinn");
            var actual     = gradualRolloutStrategy.IsEnabled(parameters, context);

            actual.Should().BeFalse("should not be enabled when 0% rollout");
        }
        public void should_be_enabled_when_using_100percent_rollout()
        {
            var context = UnleashContext.New().SessionId("1574576830").Build();
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            var parameters = buildParams(100, "innfinn");
            var result     = gradualRolloutStrategy.IsEnabled(parameters, context);

            result.Should().BeTrue();
        }
Пример #4
0
        public void should_not_be_enabled_when_0percent_rollout()
        {
            var context = UnleashContext.CreateBuilder().SessionId("1574576830").Build();
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            var parms  = BuildParams(0, "innfinn");
            var actual = gradualRolloutStrategy.IsEnabled(parms, context);

            Assert.False(actual); //"should not be enabled when 0% rollout",
        }
Пример #5
0
        public void should_be_enabled_when_using_100percent_rollout()
        {
            var context = UnleashContext.CreateBuilder().SessionId("1574576830").Build();
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            var parms  = BuildParams(100, "innfinn");
            var result = gradualRolloutStrategy.IsEnabled(parms, context);

            Assert.True(result);
        }
        public void should_have_same_result_for_multiple_executions()
        {
            var context = UnleashContext.New().SessionId("1574576830").Build();
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            var  parameters     = buildParams(1, "innfinn");
            bool firstRunResult = gradualRolloutStrategy.IsEnabled(parameters, context);

            for (int i = 0; i < 10; i++)
            {
                var subsequentRunResult = gradualRolloutStrategy.IsEnabled(parameters, context);
                firstRunResult.Should().Be(subsequentRunResult, "loginId will return same result when unchanged parameters");
            }
        }
Пример #7
0
        public void should_have_same_result_for_multiple_executions()
        {
            var context = UnleashContext.CreateBuilder().SessionId("1574576830").Build();
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            var  parms          = BuildParams(1, "innfinn");
            bool firstRunResult = gradualRolloutStrategy.IsEnabled(parms, context);

            for (int i = 0; i < 10; i++)
            {
                bool subsequentRunResult = gradualRolloutStrategy.IsEnabled(parms, context);
                Assert.Equal(
                    subsequentRunResult,
                    firstRunResult);
            }
        }
        public void should_be_enabled_above_minimum_percentage()
        {
            string sessionId         = "1574576830";
            string groupId           = "";
            int    minimumPercentage = StrategyUtils.GetNormalizedNumber(sessionId, groupId);

            var context = UnleashContext.New().SessionId(sessionId).Build();

            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            for (int p = minimumPercentage; p <= 100; p++)
            {
                var parameters = buildParams(p, groupId);
                var actual     = gradualRolloutStrategy.IsEnabled(parameters, context);
                actual.Should().BeTrue("should be enabled when " + p + "% rollout");
            }
        }
Пример #9
0
        public void should_be_enabled_above_minimum_percentage()
        {
            const string sessionId         = "1574576830";
            const string groupId           = "";
            var          minimumPercentage = StrategyUtils.GetNormalizedNumber(sessionId, groupId);

            var context = UnleashContext.CreateBuilder().SessionId(sessionId).Build();

            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            for (int p = minimumPercentage; p <= 100; p++)
            {
                var parms  = BuildParams(p, groupId);
                var actual = gradualRolloutStrategy.IsEnabled(parms, context);
                Assert.True(actual); //"should be enabled when " + p + "% rollout"
            }
        }
        protected int checkRandomLoginIDs(int numberOfIDs, int percentage)
        {
            int numberOfEnabledUsers = 0;

            for (int i = 0; i < numberOfIDs; i++)
            {
                var sessionId = getRandomLoginId();
                var context   = UnleashContext.New().SessionId(sessionId.ToString()).Build();

                var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

                var  parameters = buildParams(percentage, "");
                bool enabled    = gradualRolloutStrategy.IsEnabled(parameters, context);
                if (enabled)
                {
                    numberOfEnabledUsers++;
                }
            }
            return(numberOfEnabledUsers);
        }
Пример #11
0
        private int CheckRandomLoginIDs(int numberOfIDs, int percentage)
        {
            int numberOfEnabledUsers = 0;

            for (int i = 0; i < numberOfIDs; i++)
            {
                var sessionId = GetRandomLoginId();
                var context   = UnleashContext.CreateBuilder().SessionId(sessionId.ToString()).Build();

                var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

                var parms   = BuildParams(percentage, "");
                var enabled = gradualRolloutStrategy.IsEnabled(parms, context);
                if (enabled)
                {
                    numberOfEnabledUsers++;
                }
            }
            return(numberOfEnabledUsers);
        }
        public void should_require_context()
        {
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            gradualRolloutStrategy.IsEnabled(new Dictionary <string, string>()).Should().BeFalse();
        }
        public void should_have_a_name()
        {
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            gradualRolloutStrategy.Name.Should().Be("gradualRolloutSessionId");
        }
Пример #14
0
        public void should_have_a_name()
        {
            var gradualRolloutStrategy = new GradualRolloutSessionIdStrategy();

            Assert.Equal("gradualRolloutSessionId", gradualRolloutStrategy.Name);
        }