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); }