public void Serialize_DoesNotSerializeSinceNotConfigured(string propName) { TestA ta = new TestA(); ContractConfiguration <TestA> cc = new ContractConfiguration <TestA>(); var json = JsonConvert.SerializeObject(ta, GetSettings(cc)); JsonStringValidator jsAssert = new JsonStringValidator(json); Assert.IsFalse(jsAssert.HasProperty(propName)); }
public void Serialize_UnIgnorePrivateField() { TestA ta = new TestA(); ta.SetIgnoredPrivateField(1); ContractConfiguration <TestA> cc = new ContractConfiguration <TestA>(); cc.Field("ignoredPrivateField").Ignore(false).HasName("unignored_private_field"); var json = JsonConvert.SerializeObject(ta, GetSettings(cc)); JsonStringValidator jsAssert = new JsonStringValidator(json); Assert.IsTrue(jsAssert.HasPropertyWithValue("unignored_private_field", 1)); }
public void Serialize_OverridePrivatePropertyName() { TestA ta = new TestA(); ta.SetPrivateProp(1); ContractConfiguration <TestA> cc = new ContractConfiguration <TestA>(); cc.Property("PrivateProp").HasName("private_prop"); var json = JsonConvert.SerializeObject(ta, GetSettings(cc)); JsonStringValidator jsAssert = new JsonStringValidator(json); Assert.IsTrue(jsAssert.HasPropertyWithValue("private_prop", 1)); }
public void Serialize_OverridePropertyName() { TestA ta = new TestA() { IdA = 1 }; ContractConfiguration <TestA> cc = new ContractConfiguration <TestA>(); cc.Property(ta => ta.IdA).HasName("id_a"); var json = JsonConvert.SerializeObject(ta, GetSettings(cc)); JsonStringValidator jsAssert = new JsonStringValidator(json); Assert.IsTrue(jsAssert.HasPropertyWithValue("id_a", 1)); }
public void Serialize_UnnamedProperty() { TestA ta = new TestA() { UnnamedProperty = 1 }; ContractConfiguration <TestA> cc = new ContractConfiguration <TestA>(); cc.Property(ta => ta.UnnamedProperty).HasName("unnamed_property"); var json = JsonConvert.SerializeObject(ta, GetSettings(cc)); JsonStringValidator jsAssert = new JsonStringValidator(json); Assert.IsTrue(jsAssert.HasPropertyWithValue("unnamed_property", 1)); }
public void Serialize_NestedObjectNaming() { TestA ta = new TestA(); ta.TestBReference = new TestB() { IdB = 1 }; ContractConfiguration <TestB> cc = new ContractConfiguration <TestB>(); cc.Property(tb => tb.IdB).HasName("id_b"); var json = JsonConvert.SerializeObject(ta, GetSettings(cc)); JsonStringValidator jsAssert = new JsonStringValidator(json, jt => jt["testB"]); Assert.IsTrue(jsAssert.HasPropertyWithValue("id_b", 1)); }
public void Serialize_IgnorePrivateField() { TestA ta = new TestA(); ta.SetPrivateField(1); ContractConfiguration <TestA> cc = new ContractConfiguration <TestA>(); cc.Field("privateField").Ignore(); var staticJson = JsonConvert.SerializeObject(ta); var json = JsonConvert.SerializeObject(ta, GetSettings(cc)); JsonStringValidator jsAssertStatic = new JsonStringValidator(staticJson); Assert.IsTrue(jsAssertStatic.HasProperty("privateField")); JsonStringValidator jsAssert = new JsonStringValidator(json); Assert.IsFalse(jsAssert.HasProperty("privateField")); }
public void Serialize_IgnoreProperty() { TestA ta = new TestA() { IdA = 1 }; ContractConfiguration <TestA> cc = new ContractConfiguration <TestA>(); cc.Property(ta => ta.IdA).Ignore(); var staticJson = JsonConvert.SerializeObject(ta); var json = JsonConvert.SerializeObject(ta, GetSettings(cc)); JsonStringValidator jsAssertStatic = new JsonStringValidator(staticJson); Assert.IsTrue(jsAssertStatic.HasProperty("idA")); JsonStringValidator jsAssert = new JsonStringValidator(json); Assert.IsFalse(jsAssert.HasProperty("idA")); }
public void Serialize_NestedArrayNaming() { TestB tb = new TestB() { IdB = 1 }; var tas = new TestA[] { new TestA() { IdA = 1 }, new TestA() { IdA = 2 }, new TestA() { IdA = 3 }, new TestA() { IdA = 4 }, }; tb.TestAReferences.AddRange(tas); ContractConfiguration <TestA> cc = new ContractConfiguration <TestA>(); cc.Property(ta => ta.IdA).HasName("id_a"); var json = JsonConvert.SerializeObject(tb, GetSettings(cc)); for (int i = 0; i < tas.Length; i++) { JsonStringValidator jsAssert = new JsonStringValidator(json, jt => jt["testAs"].Cast <JObject>().ElementAt(i)); Assert.IsTrue(jsAssert.HasPropertyWithValue("id_a", i + 1)); } }
public void StringValidator() { var c = new JsonSchemaValidationContext("test"); { var v = new JsonStringValidator(); Assert.Null(v.Validate(c, "")); Assert.Null(v.Validate(c, "a")); } { var v = new JsonStringValidator(); v.MinLength = 1; Assert.Null(v.Validate(c, "a")); Assert.NotNull(v.Validate(c, "")); } { var v = new JsonStringValidator(); v.MaxLength = 1; Assert.Null(v.Validate(c, "a")); Assert.NotNull(v.Validate(c, "ab")); } { var v = new JsonStringValidator(); v.Pattern = new System.Text.RegularExpressions.Regex("abc"); Assert.Null(v.Validate(c, "abc")); Assert.NotNull(v.Validate(c, "ab")); } { var v = new JsonStringValidator(); v.Pattern = new System.Text.RegularExpressions.Regex("ab+"); Assert.Null(v.Validate(c, "abb")); Assert.Null(v.Validate(c, "ab")); Assert.NotNull(v.Validate(c, "a")); } Assert.True(c.IsEmpty()); }