public void FailSchemaMatchValidSchemaDoesNotMatch() { var rule = @"{ 'name': 'James', 'hobbies': {} }"; var valueToEvaluate = "{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"hobbies\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}"; var actual = JsonComparer.MatchesSchema(rule, valueToEvaluate); }
public void SuccessSchemaMatchValidSchemaMatches() { var rule = @"{ 'name': 'James', 'hobbies': ['A', 'B', 'C', 'D', 'E'] }"; var valueToEvaluate = "{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"hobbies\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}"; var actual = JsonComparer.MatchesSchema(rule, valueToEvaluate); Assert.True(actual); }
private bool ExecuteComparer(Assert assert) { switch (assert.Rule) { case ComparerType.REGEX: return(RegexComparer.Compare(assert.Actual, assert.Expect)); case ComparerType.TEXTCONTAINS: return(TextComparer.Contains(assert.Actual, assert.Expect)); case ComparerType.TEXTSTARTSWITH: return(TextComparer.StartsWith(assert.Actual, assert.Expect)); case ComparerType.TEXTENDSWITH: return(TextComparer.EndsWith(assert.Actual, assert.Expect)); case ComparerType.TEXTEQUALS: return(TextComparer.Equals(assert.Actual, assert.Expect)); case ComparerType.ACCEPTALL: return(true); case ComparerType.JSONCONTAINS: return(JsonComparer.DeepContains(assert.Expect, assert.Actual)); case ComparerType.JSONEQUALITY: return(JsonComparer.DeepEqual(assert.Expect, assert.Actual)); case ComparerType.JSONSCHEMA: return(JsonComparer.MatchesSchema(assert.Actual, assert.Expect)); case ComparerType.JSONPATH: return(JsonComparer.PathEqual(assert.Expect, assert.Actual)); default: return(false); } }