|
1 | 1 | using System.Collections; |
2 | 2 | using System.Collections.Generic; |
| 3 | +using System.IO; |
3 | 4 | using Northwind.Common.DataModel; |
4 | 5 | using NUnit.Framework; |
5 | 6 | using ServiceStack.Text.Tests.Support; |
@@ -33,13 +34,31 @@ public void Serialize<T>(T data) |
33 | 34 | csv.Print(); |
34 | 35 | } |
35 | 36 |
|
36 | | - public void SerializeAndDeserialize<T>(T data) |
| 37 | + public object SerializeAndDeserialize<T>(T data) |
37 | 38 | { |
38 | 39 | var csv = CsvSerializer.SerializeToString(data); |
39 | 40 | csv.Print(); |
40 | 41 |
|
41 | 42 | var dto = CsvSerializer.DeserializeFromString<T>(csv); |
| 43 | + AssertEqual(dto, data); |
42 | 44 |
|
| 45 | + using (var reader = new StringReader(csv)) |
| 46 | + { |
| 47 | + dto = CsvSerializer.DeserializeFromReader<T>(reader); |
| 48 | + AssertEqual(dto, data); |
| 49 | + } |
| 50 | + |
| 51 | + using (var ms = new MemoryStream(csv.ToUtf8Bytes())) |
| 52 | + { |
| 53 | + dto = CsvSerializer.DeserializeFromStream<T>(ms); |
| 54 | + AssertEqual(dto, data); |
| 55 | + } |
| 56 | + |
| 57 | + return dto; |
| 58 | + } |
| 59 | + |
| 60 | + private static void AssertEqual<T>(T dto, T data) |
| 61 | + { |
43 | 62 | var dataArray = data is IEnumerable ? (data as IEnumerable).Map(x => x).ToArray() : null; |
44 | 63 | var dtoArray = dto is IEnumerable ? (dto as IEnumerable).Map(x => x).ToArray() : null; |
45 | 64 |
|
@@ -102,6 +121,13 @@ public void Can_Serialize_inherited_Movies() |
102 | 121 | SerializeAndDeserialize(new Movies(MoviesData.Movies)); |
103 | 122 | } |
104 | 123 |
|
| 124 | + [Test] |
| 125 | + public void Does_Serialize_back_into_Array() |
| 126 | + { |
| 127 | + var dto = SerializeAndDeserialize(MoviesData.Movies.ToArray()); |
| 128 | + Assert.That(dto.GetType().IsArray); |
| 129 | + } |
| 130 | + |
105 | 131 | [Test] |
106 | 132 | public void Can_Serialize_MovieResponse_Dto() |
107 | 133 | { |
|
0 commit comments