Exemplo n.º 1
0
        public void JSON_Deserialize_And_Lookup()
        {
            // Note: following presumes JObject parsing...
            string mixJson = "{ 'abc': 1, 'ABC': 2, 'AbC': 3 }".Replace('\'', '"');

            JsonHelpers.ContainsProperty(mixJson, "AbC", true).ShouldBeTrue();
            JsonHelpers.ContainsProperty(mixJson, "ABC", true).ShouldBeTrue();
            JsonHelpers.ContainsProperty(mixJson, "abc", true).ShouldBeTrue();

            JsonHelpers.ContainsProperty(mixJson, "AbC").ShouldBeTrue();
            JsonHelpers.ContainsProperty(mixJson, "ABC").ShouldBeTrue();
            JsonHelpers.ContainsProperty(mixJson, "abc").ShouldBeTrue();

            JsonHelpers.ContainsProperty(mixJson, "abc", false).ShouldBeTrue();
            // bad casing tests
            JsonHelpers.ContainsProperty(mixJson, "aBc", false).ShouldBeTrue();
            JsonHelpers.ContainsProperty(mixJson, "aBc", true).ShouldBeFalse();
            // No such property
            JsonHelpers.ContainsProperty(mixJson, "XXX", true).ShouldBeFalse();
            JsonHelpers.ContainsProperty(mixJson, "XXX", false).ShouldBeFalse();
            // Bad JSON
            bool workedAsExpected = false;

            try
            {
                JsonHelpers.ContainsProperty("xcysdf", "xxx", false).ShouldBeFalse();
                workedAsExpected = true;
            }
            catch (JsonException)
            {
                workedAsExpected = true;
            }
            catch (Exception)
            {
                // nothing to do, threw an exception, but not right type, so fail.
            }
            workedAsExpected.ShouldBeTrue();
        }