Beispiel #1
0
        public void NoVaraints()
        {
            const string key   = "Key1";
            const string value = "Value1";

            var rawConfig = new MockPluginConfig(new Dictionary <string, string>
            {
                { key, value }
            });

            // Initialize with no flights
            var variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, new HashSet <string>());
            var configValue = variantConfigPluginConfig.Get(key);

            Assert.Equal(value, configValue);

            // Initialize with baseline flight
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("baseline"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal(value, configValue);

            // Initialize with non-baseline flight
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal(value, configValue);

            // Initialize with multiple flights
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1", "flt2"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal(value, configValue);
        }
Beispiel #2
0
        public void MultipleVariant_MultipleConstraints_DifferentCardinality()
        {
            const string key   = "Key1";
            const string value = "BASELINE_VALUE||flt::flt1==FLT1_VALUE||flt::flt1&&flt::flt3==FLT1_FLT3_VALUE";

            var rawConfig = new MockPluginConfig(new Dictionary <string, string>
            {
                { key, value }
            });

            // Initialize with no flights
            var variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, new HashSet <string>());
            var configValue = variantConfigPluginConfig.Get(key);

            Assert.Equal("BASELINE_VALUE", configValue);

            // Initialize with baseline flight
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("baseline"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("BASELINE_VALUE", configValue);

            // Initialize with subset of matching flights
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("FLT1_VALUE", configValue);

            // Initialize with all matching constraints
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1", "flt2"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("FLT1_VALUE", configValue);

            // Initialize with another set of all matching constraints
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1", "flt3"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("FLT1_FLT3_VALUE", configValue);

            // Initialize with all matching constraints and overlap
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1", "flt2", "flt3"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("FLT1_FLT3_VALUE", configValue);

            // Initialize with all matching constraints and one more
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1", "flt2", "flt4"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("FLT1_VALUE", configValue);
        }
Beispiel #3
0
        public void SingleVariant_SingleConstraint()
        {
            const string key   = "Key1";
            const string value = "BASELINE_VALUE||flt::flt1==FLT1_VALUE";

            var rawConfig = new MockPluginConfig(new Dictionary <string, string>
            {
                { key, value }
            });

            // Initialize with no flights
            var variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, new HashSet <string>());
            var configValue = variantConfigPluginConfig.Get(key);

            Assert.Equal("BASELINE_VALUE", configValue);

            // Initialize with baseline flight
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("baseline"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("BASELINE_VALUE", configValue);

            // Initialize with matching flight
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("FLT1_VALUE", configValue);

            // Initialize with non matching flight
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt2"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("BASELINE_VALUE", configValue);

            // Initialize with matching and non matching flight
            variantConfigPluginConfig = GetVariantConfingPluginConfig(rawConfig, GetFlights("flt1", "flt2"));
            configValue = variantConfigPluginConfig.Get(key);
            Assert.Equal("FLT1_VALUE", configValue);
        }