Exemplo n.º 1
0
        public void CanSerializeToJson()
        {
            var state = new FeatureFlagsState(true);
            var flag1 = new FeatureFlagBuilder("key1").Version(100).Build();
            var flag2 = new FeatureFlagBuilder("key2").Version(200)
                        .TrackEvents(true).DebugEventsUntilDate(1000).Build();

            state.AddFlag(flag1, new JValue("value1"), 0, null);
            state.AddFlag(flag2, new JValue("value2"), 1, EvaluationReason.Fallthrough.Instance);

            var expectedString = @"{""key1"":""value1"",""key2"":""value2"",
                ""$flagsState"":{
                  ""key1"":{
                    ""variation"":0,""version"":100,""trackEvents"":false
                  },""key2"":{
                    ""variation"":1,""version"":200,""reason"":{""kind"":""FALLTHROUGH""},""trackEvents"":true,""debugEventsUntilDate"":1000
                  }
                },
                ""$valid"":true
            }";
            var expectedValue  = JsonConvert.DeserializeObject <JToken>(expectedString);
            var actualString   = JsonConvert.SerializeObject(state);
            var actualValue    = JsonConvert.DeserializeObject <JToken>(actualString);

            TestUtils.AssertJsonEqual(expectedValue, actualValue);
        }
Exemplo n.º 2
0
        public void CanDeserializeFromJson()
        {
            var state = new FeatureFlagsState(true);
            var flag1 = new FeatureFlagBuilder("key1").Version(100).Build();
            var flag2 = new FeatureFlagBuilder("key2").Version(200)
                        .TrackEvents(true).DebugEventsUntilDate(1000).Build();

            state.AddFlag(flag1, new JValue("value1"), 0, null);
            state.AddFlag(flag2, new JValue("value2"), 1, EvaluationReason.Fallthrough.Instance);

            var jsonString = JsonConvert.SerializeObject(state);
            var state1     = JsonConvert.DeserializeObject <FeatureFlagsState>(jsonString);

            Assert.Equal(state, state1);
        }
Exemplo n.º 3
0
        public void CanConvertToValuesMap()
        {
            var state = new FeatureFlagsState(true);
            var flag1 = new FeatureFlagBuilder("key1").Build();
            var flag2 = new FeatureFlagBuilder("key2").Build();

            state.AddFlag(flag1, new JValue("value1"), 0, null);
            state.AddFlag(flag2, new JValue("value2"), 1, null);

            var expected = new Dictionary <string, JToken>
            {
                { "key1", new JValue("value1") },
                { "key2", new JValue("value2") }
            };

            Assert.Equal(expected, state.ToValuesMap());
        }
Exemplo n.º 4
0
        public void ReasonIsNullIfReasonsWereNotRecorded()
        {
            var state = new FeatureFlagsState(true);
            var flag  = new FeatureFlagBuilder("key").Build();

            state.AddFlag(flag, new JValue("value"), 1, null);

            Assert.Null(state.GetFlagReason("key"));
        }
Exemplo n.º 5
0
        public void CanGetFlagReason()
        {
            var state = new FeatureFlagsState(true);
            var flag  = new FeatureFlagBuilder("key").Build();

            state.AddFlag(flag, new JValue("value"), 1, EvaluationReason.Fallthrough.Instance);

            Assert.Equal(EvaluationReason.Fallthrough.Instance, state.GetFlagReason("key"));
        }
Exemplo n.º 6
0
        public void CanGetFlagValue()
        {
            var state = new FeatureFlagsState(true);
            var flag  = new FeatureFlagBuilder("key").Build();

            state.AddFlag(flag, new JValue("value"), 1, null);

            Assert.Equal(new JValue("value"), state.GetFlagValue("key"));
        }
        public void CanConvertToDeprecatedValuesMap()
        {
            var state = new FeatureFlagsState(true);
            var flag1 = new FeatureFlagBuilder("key1").Build();
            var flag2 = new FeatureFlagBuilder("key2").Build();

            state.AddFlag(flag1, new JValue("value1"), 0, null, false);
            state.AddFlag(flag2, new JValue("value2"), 1, null, false);

            var expected = new Dictionary <string, JToken>
            {
                { "key1", new JValue("value1") },
                { "key2", new JValue("value2") }
            };

#pragma warning disable 0618
            Assert.Equal(expected, state.ToValuesMap());
#pragma warning restore 0618
        }
        public void CanGetDeprecatedFlagValue()
        {
            var state = new FeatureFlagsState(true);
            var flag  = new FeatureFlagBuilder("key").Build();

            state.AddFlag(flag, new JValue("value"), 1, null, false);
#pragma warning disable 0618
            Assert.Equal(new JValue("value"), state.GetFlagValue("key"));
#pragma warning restore 0618
        }