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(); }