예제 #1
0
        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),
            });
        }
예제 #2
0
        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" }
            });
        }
예제 #3
0
        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);
        }