public void AllowsReorderingOfHeaders() { var subject = new CsjDeserializer <SimpleObject>(); const string csj = @"""Date"",""String"",""Double"",""Integer"" ""2015-02-03T10:37:15Z"",""foobar"",42.23,2 ""2015-02-03T10:37:15Z"",""bazbox"",12.43,15"; var results = subject.Deserialize(csj).ToArray(); Check.That(results).HasSize(2); Check.That(results[0]).HasFieldsWithSameValues(new SimpleObject() { Integer = 2, Double = 42.23, String = "foobar", Date = new DateTime(2015, 2, 3, 10, 37, 15, DateTimeKind.Utc), }); Check.That(results[1]).HasFieldsWithSameValues(new SimpleObject() { Integer = 15, Double = 12.43, String = "bazbox", Date = new DateTime(2015, 2, 3, 10, 37, 15, DateTimeKind.Utc), }); }
public void DeserializesNestedArrays() { var subject = new CsjDeserializer <NestedArrayExample>(); const string csj = @"""Name"",""Tags"" ""Foo"",[""three"",""fake""]"; var results = subject.Deserialize(csj).ToArray(); Check.That(results).HasSize(1); Check.That(results[0]).HasFieldsWithSameValues(new NestedArrayExample() { Name = "Foo", Tags = new[] { "three", "fake" } }); }
public void CanRoundTripLargeCollectionToFile() { var samples = GenerateSamples().Take(100).ToArray(); var serializer = new CsjSerializer <Sample>(); var deserializer = new CsjDeserializer <Sample>(); var filename = Path.GetTempFileName(); using (var writer = new StreamWriter(File.OpenWrite(filename), Encoding.UTF8)) { serializer.Serialize(writer, samples); } using (var reader = new StreamReader(File.OpenRead(filename), Encoding.UTF8)) { var result = deserializer.Deserialize(reader).ToArray(); for (var i = 0; i < samples.Length; i++) { Check.That(result[i]).HasFieldsWithSameValues(samples[i]); } } File.Delete(filename); }