diff --git a/src/Unleash/Strategies/FlexibleRolloutStrategy.cs b/src/Unleash/Strategies/FlexibleRolloutStrategy.cs index b6f0475b..4d49aad9 100644 --- a/src/Unleash/Strategies/FlexibleRolloutStrategy.cs +++ b/src/Unleash/Strategies/FlexibleRolloutStrategy.cs @@ -40,7 +40,7 @@ public bool IsEnabled(Dictionary parameters, UnleashContext cont groupId = ""; } - if (!string.IsNullOrEmpty(stickinessId)) + if (!(stickinessId is null)) { var normalizedUserId = StrategyUtils.GetNormalizedNumber(stickinessId, groupId, 0); return percentage > 0 && normalizedUserId <= percentage; diff --git a/tests/Unleash.Tests/Strategy/FlexibleRolloutStrategyTest.cs b/tests/Unleash.Tests/Strategy/FlexibleRolloutStrategyTest.cs index 8ddd2f2d..3259a545 100644 --- a/tests/Unleash.Tests/Strategy/FlexibleRolloutStrategyTest.cs +++ b/tests/Unleash.Tests/Strategy/FlexibleRolloutStrategyTest.cs @@ -337,5 +337,27 @@ public void Should_be_enabled_without_a_context() { // Assert enabled.Should().BeTrue(); } + + [Test] + public void Should_be_enabled_for_empty_userid() { + // Arrange + var strategy = new FlexibleRolloutStrategy(); + var parameters = new Dictionary + { + { "rollout", "100" }, + { "stickiness", "default" }, + { "groupId", "Feature.flexible.rollout.custom.stickiness_100" } + }; + var context = new UnleashContext + { + UserId = string.Empty + }; + + // Act + var enabled = strategy.IsEnabled(parameters, context); + + // Assert + enabled.Should().BeTrue(); + } } }