-Added support for deserializing IList

-Fixed bugs
This commit is contained in:
James Newton-King
2013-03-30 20:46:11 +13:00
parent bef6c4c11a
commit 0007006850
10 changed files with 118 additions and 129 deletions
@@ -652,20 +652,20 @@ namespace Newtonsoft.Json.Tests.Serialization
{
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.Error += (obj, args) =>
{
args.ErrorContext.Handled = true;
};
var data = new List<ErrorPerson2>()
{
new ErrorPerson2{FirstName = "Scott", LastName = "Hanselman"},
new ErrorPerson2{FirstName = "Scott", LastName = "Hunter"},
new ErrorPerson2{FirstName = "Scott", LastName = "Guthrie"},
args.ErrorContext.Handled = true;
};
var dictionary = data.GroupBy(person => person.FirstName).ToDictionary(group => @group.Key, group => @group.Cast<IErrorPerson2>());
var output = JsonConvert.SerializeObject(dictionary, Formatting.None, settings);
Assert.AreEqual(@"{""Scott"":null}", output);
var data = new List<ErrorPerson2>()
{
new ErrorPerson2 {FirstName = "Scott", LastName = "Hanselman"},
new ErrorPerson2 {FirstName = "Scott", LastName = "Hunter"},
new ErrorPerson2 {FirstName = "Scott", LastName = "Guthrie"},
};
Dictionary<string, IEnumerable<IErrorPerson2>> dictionary = data.GroupBy(person => person.FirstName).ToDictionary(group => @group.Key, group => @group.Cast<IErrorPerson2>());
string output = JsonConvert.SerializeObject(dictionary, Formatting.None, settings);
Assert.AreEqual(@"{""Scott"":[]}", output);
}
[Test]
@@ -685,10 +685,10 @@ namespace Newtonsoft.Json.Tests.Serialization
new ErrorPerson2 {FirstName = "James", LastName = "Newton-King"},
};
var dictionary = data.GroupBy(person => person.FirstName).ToDictionary(group => @group.Key, group => @group.Cast<IErrorPerson2>());
var output = JsonConvert.SerializeObject(dictionary, Formatting.None, settings);
Dictionary<string, IEnumerable<IErrorPerson2>> dictionary = data.GroupBy(person => person.FirstName).ToDictionary(group => @group.Key, group => @group.Cast<IErrorPerson2>());
string output = JsonConvert.SerializeObject(dictionary, Formatting.None, settings);
Assert.AreEqual(@"{""Scott"":null,""James"":null}", output);
Assert.AreEqual(@"{""Scott"":[],""James"":[]}", output);
}
}