public void Lz4SafeFormatsToStream() { var test = TestResourceFactory.CreateRandom() as MockClassC; var zip = new LZ4ZipFormatter(TestResourceFactory.CreateBsonFormatter()); Stream formatted; Assert.IsTrue(zip.TryFormatObj(test, out formatted)); MockClassA raw; Assert.IsTrue(zip.TryUnformatObj<MockClassA>(formatted, out raw)); var unformatted = raw as MockClassC; Assert.AreEqual(unformatted.Id, test.Id); Assert.AreEqual(unformatted.Name, test.Name); Assert.AreEqual(unformatted.GetSomeCheckSum[0], test.GetSomeCheckSum[0]); Assert.AreEqual(unformatted.Location.X, test.Location.X); Assert.AreEqual(unformatted.Location.Y, test.Location.Y); Assert.AreEqual(unformatted.Location.Z, test.Location.Z); Assert.AreEqual(unformatted.Location.W, test.Location.W); Assert.AreEqual(unformatted.ReferenceCode, test.ReferenceCode); Assert.AreEqual(unformatted.ReplicationID, test.ReplicationID); var invalid = Encoding.UTF8.GetBytes("{ this is invalid."); //Check false conditions. Assert.IsFalse(zip.TryFormatObj(default(MockClassA), out formatted)); Assert.IsFalse(zip.TryUnformatObj((byte[])null, out raw)); Assert.IsFalse(zip.TryUnformatObj(invalid, out raw)); }