public void ReadJson_IfJsonIsMissingAFieldStoresItAndContinuesDeserializing() { // Arrange string testField2Value = "testField2Value"; bool? testField3Value = true; string json = $"{{\"_stubField2\":\"{testField2Value}\",\"_stubField3\":{testField3Value.ToString().ToLowerInvariant()}}}"; PrivateFieldsJsonConverter converter = new PrivateFieldsJsonConverter(); // Act StubClass result = JsonConvert.DeserializeObject <StubClass>(json, converter); // Assert Assert.Equal(1, converter.MissingFields.Count); Assert.Equal("_stubField1", converter.MissingFields[0].Name); Assert.Equal(testField2Value, result.StubProperty2); Assert.Equal(testField3Value, result.StubProperty3); }
public void ReadJson_IfJsonContainsAnExtraFieldStoresItAndContinuesDeserializing() { // Arrange int testField1Value = 1; string testField2Value = "testField2Value"; bool? testField3Value = true; string extraFieldKey = "extraFieldKey"; string extraFieldValue = "extraFieldValue"; string json = $"{{\"{extraFieldKey}\":\"{extraFieldValue}\",\"_stubField1\":{testField1Value},\"_stubField2\":\"{testField2Value}\",\"_stubField3\":{testField3Value.ToString().ToLowerInvariant()}}}"; PrivateFieldsJsonConverter converter = new PrivateFieldsJsonConverter(); // Act StubClass result = JsonConvert.DeserializeObject <StubClass>(json, converter); // Assert Assert.Equal(1, converter.ExtraFields.Count); Assert.Equal(extraFieldValue, (string)converter.ExtraFields[0].Value); Assert.Equal(testField1Value, result.StubProperty1); Assert.Equal(testField2Value, result.StubProperty2); Assert.Equal(testField3Value, result.StubProperty3); }