public void WhenCopysPropertiesAreModifiedThenOriginalStaysTheSame() { // Arrange var oriConverter = new JsonSerializer(); oriConverter.Settings.ContractResolver.PropertyContract = new DefaultPropertyContract(); oriConverter.Settings.ContractResolver.ObjectContract = new DefaultObjectContract(); oriConverter.Settings.Formatting = Newtonsoft.Json.Formatting.None; oriConverter.Settings.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore; oriConverter.Settings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; // Act var newConverter = (JsonSerializer)oriConverter.Clone(); newConverter.Settings.ContractResolver.PropertyContract = new ChangeFieldNamePropertyContract(typeof(int), "From", "To"); newConverter.Settings.ContractResolver.ObjectContract = new RequiredAttributesObjectContract(RequiredLevel.AllowNull); newConverter.Settings.Formatting = Newtonsoft.Json.Formatting.Indented; newConverter.Settings.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Error; newConverter.Settings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Error; // Assert Assert.AreEqual(Newtonsoft.Json.MissingMemberHandling.Ignore, oriConverter.Settings.MissingMemberHandling); Assert.AreEqual(Newtonsoft.Json.ReferenceLoopHandling.Ignore, oriConverter.Settings.ReferenceLoopHandling); Assert.AreEqual(Newtonsoft.Json.Formatting.None, oriConverter.Settings.Formatting); Assert.IsInstanceOfType(oriConverter.Settings.ContractResolver.PropertyContract, typeof(DefaultPropertyContract)); Assert.IsInstanceOfType(oriConverter.Settings.ContractResolver.ObjectContract, typeof(DefaultObjectContract)); }
public static JsonSerializer RemoveConverter(this JsonSerializer serializer, JsonConverter converter) { var clone = serializer.Clone(); clone.Converters.Remove(converter); return(clone); }
public void WhenAddConverterInCopyThenOriginalIsTheSame() { // Arrange var oriConverter = new JsonSerializer(); // Act var newConverter = ((JsonSerializer)oriConverter.Clone()).AddConverter(new JsonConverters.DateTimeAsUnixTimeConverter()); // Assert Assert.AreEqual(1, newConverter.Settings.Converters.Count); Assert.AreEqual(0, oriConverter.Settings.Converters.Count); }