Skip to content

Commit a15b2a4

Browse files
committed
Merge pull request #305 from PedroLamas/master
Fixed List<T> json deserialization, when T was a something like DateTime, Timespan, Guid, etc.
2 parents 057be99 + 77befa1 commit a15b2a4

File tree

3 files changed

+322
-311
lines changed

3 files changed

+322
-311
lines changed

RestSharp.Tests/JsonTests.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,40 @@ public void Can_Deserialize_Generic_Members()
128128
Assert.Equal("Foe sho", output.Data.Items[0].Nickname);
129129
}
130130

131+
[Fact]
132+
public void Can_Deserialize_List_of_Guid()
133+
{
134+
Guid ID1 = new Guid("b0e5c11f-e944-478c-aadd-753b956d0c8c");
135+
Guid ID2 = new Guid("809399fa-21c4-4dca-8dcd-34cb697fbca0");
136+
var data = new JObject();
137+
data["Ids"] = new JArray(ID1, ID2);
138+
139+
var d = new JsonDeserializer();
140+
var response = new RestResponse { Content = data.ToString() };
141+
var p = d.Deserialize<GuidList>(response);
142+
143+
Assert.Equal(2, p.Ids.Count);
144+
Assert.Equal(ID1, p.Ids[0]);
145+
Assert.Equal(ID2, p.Ids[1]);
146+
}
147+
148+
[Fact]
149+
public void Can_Deserialize_Generic_List_of_DateTime()
150+
{
151+
DateTime Item1 = new DateTime(2010, 2, 8, 11, 11, 11);
152+
DateTime Item2 = Item1.AddSeconds(12345);
153+
var data = new JObject();
154+
data["Items"] = new JArray(Item1.ToString("u"), Item2.ToString("u"));
155+
156+
var d = new JsonDeserializer();
157+
var response = new RestResponse { Content = data.ToString() };
158+
var p = d.Deserialize<GenericWithList<DateTime>>(response);
159+
160+
Assert.Equal(2, p.Items.Count);
161+
Assert.Equal(Item1, p.Items[0]);
162+
Assert.Equal(Item2, p.Items[1]);
163+
}
164+
131165
[Fact]
132166
public void Can_Deserialize_Empty_Elements_to_Nullable_Values()
133167
{

0 commit comments

Comments
 (0)