public void ReadFromStream() { HsqlDataReader expected = NewTestSubject(); MemoryStream ms = new MemoryStream(HsqlDataReader.ToByteArray(expected)); HsqlDataReader.WriteToStream(ms, expected); ms.Position = 0; HsqlDataReader actual = HsqlDataReader.ReadFromStream(ms); Assert.AreEqual(expected.Depth, actual.Depth, "Depth"); Assert.AreEqual(expected.FieldCount, actual.FieldCount, "FieldCount"); Assert.AreEqual(expected.HasRows, actual.HasRows, "HasRows"); Assert.AreEqual(expected.IsClosed, actual.IsClosed, "IsClosed"); Assert.AreEqual(expected.RecordsAffected, actual.RecordsAffected, "RecordsAffected"); Assert.AreEqual(expected.VisibleFieldCount, actual.VisibleFieldCount, "VisibleFieldCount"); object[] expectedValues = new object[expected.FieldCount]; object[] actualValues = new object[actual.FieldCount]; while (expected.Read()) { Assert.That(actual.Read()); expected.GetValues(expectedValues); actual.GetValues(actualValues); for (int i = 0; i < expectedValues.Length; i++) { Assert.AreEqual(expectedValues[i], actualValues[i]); } } }