public void ShouldReturnVariantOverride()
        {
            // Arrange
            var v1 = new VariantDefinition("a", 33);
            var variantOverride = new VariantOverride("userId", "11", "12", "123", "44");
            var v2 = new VariantDefinition("b", 33, null, new List <VariantOverride> {
                variantOverride
            });
            var v3 = new VariantDefinition("c", 34);

            var toggle = new FeatureToggle(
                "test.variants",
                "release",
                true,
                new List <ActivationStrategy> {
                defaultStrategy
            },
                new List <VariantDefinition> {
                v1, v2, v3
            });

            var context = new UnleashContext
            {
                UserId        = "123",
                SessionId     = "sessionId",
                RemoteAddress = "remoteAddress",
                Properties    = new Dictionary <string, string>()
            };

            // Act
            var variant = VariantUtils.SelectVariant(toggle, context, Variant.DISABLED_VARIANT);

            // Assert
            variant.Name.Should().Be(v2.Name);
        }
Ejemplo n.º 2
0
 public void changed(VariantOverride variant)
 {
     ensureScannerExists();
     if (variant.Name == "Name")
     {
         editInterface.setName(variant.Value);
     }
 }
Ejemplo n.º 3
0
        public void ShouldReturnVariantOverrideOnSessionId()
        {
            // Arrange
            var sessionId = "122221";

            var v1               = new VariantDefinition("a", 33);
            var override_env     = new VariantOverride("env", "dev");
            var override_session = new VariantOverride("sessionId", sessionId);
            var v2               = new VariantDefinition("b", 33, null, new List <VariantOverride> {
                override_env, override_session
            });
            var v3 = new VariantDefinition("c", 34);

            var toggle = new FeatureToggle(
                "test.variants",
                true,
                new List <ActivationStrategy> {
                defaultStrategy
            },
                new List <VariantDefinition> {
                v1, v2, v3
            });

            var context = new UnleashContext
            {
                UserId        = "11",
                SessionId     = sessionId,
                RemoteAddress = "remoteAddress",
                Properties    = new Dictionary <string, string> {
                    { "env", "prod" }
                }
            };

            // Act
            var variant = VariantUtils.SelectVariant(toggle, context, Variant.DISABLED_VARIANT);

            // Assert
            variant.Name.Should().Be(v2.Name);
        }
        public void ShouldReturnVariantOverrideOnRemoteAdress()
        {
            // Arrange
            var v1 = new VariantDefinition("a", 33, new Payload("string", "asd"), new Collection <VariantOverride>());
            var v2 = new VariantDefinition("b", 33, null, new Collection <VariantOverride>());
            var variantOverride = new VariantOverride("remoteAddress", "11.11.11.11");
            var v3 = new VariantDefinition("c", 34, new Payload("string", "blob"), new Collection <VariantOverride> {
                variantOverride
            });

            var toggle = new FeatureToggle(
                "test.variants",
                "release",
                true,
                new List <ActivationStrategy> {
                defaultStrategy
            },
                new List <VariantDefinition> {
                v1, v2, v3
            });

            var context = new UnleashContext
            {
                UserId        = "userId",
                SessionId     = "sessionId",
                RemoteAddress = "11.11.11.11",
                Properties    = new Dictionary <string, string>()
            };

            // Act
            var variant = VariantUtils.SelectVariant(toggle, context, Variant.DISABLED_VARIANT);

            // Assert
            variant.Name.Should().Be(v3.Name);
            variant.Payload.Should().BeSameAs(v3.Payload);
            variant.IsEnabled.Should().BeTrue();
        }