Esempio n. 1
0
        public void BSONWritesJObjectToStream()
        {
            var arraySettings = BSONFormatter.GetDefaultSettings();
            arraySettings.TypeNameHandling = BESSy.Json.TypeNameHandling.Objects;

            var test = TestResourceFactory.CreateRandom() as MockClassC;

            var bson = new BSONFormatter(arraySettings);

            var stream = bson.FormatObjStream(test);
            var len = stream.Length;

            var copy = new MemoryStream();
            stream.Position = 0;
            stream.CopyTo(copy);

            var unformatted = bson.Parse(stream);

            var formatted = bson.Unparse(unformatted);

            copy.Position = formatted.Position = 0;

            var orig = new StreamReader(copy).ReadToEnd();
            var unparsed = new StreamReader(formatted).ReadToEnd();

            //Console.Write(b);
            //Console.WriteLine();
            //Console.Write(unparsed);

            Assert.AreEqual(copy.Length, formatted.Length);

            var reformatted = bson.Parse(formatted);

            Assert.AreEqual(unformatted, reformatted);

            MockClassC.Validate(unformatted.ToObject<MockClassC>(), reformatted.ToObject<MockClassC>());

            Stream os;
            bson.TryUnparse(reformatted, out os);

            Assert.AreEqual(len, os.Length);
        }