private static void AssertDecode(int expectedInnerNumber, Action <EmberReader> assertEqual, params byte[] input) { using (var stream = new MemoryStream(input)) using (var reader = new EmberReader(stream, 1)) { AssertThrow <InvalidOperationException>(() => reader.InnerNumber.GetHashCode().Ignore()); AssertThrow <InvalidOperationException>(() => reader.OuterId.Ignore()); AssertThrow <InvalidOperationException>(() => reader.ReadContentsAsObject()); Assert.IsFalse(reader.CanReadContents); Assert.IsTrue(reader.Read()); Assert.AreEqual(EmberId.CreateApplication(0), reader.OuterId); Assert.AreEqual(expectedInnerNumber, reader.InnerNumber); assertEqual(reader); AssertThrow <InvalidOperationException>(() => reader.ReadContentsAsObject()); Assert.IsFalse(reader.Read()); reader.Dispose(); Assert.IsFalse(reader.CanReadContents); AssertThrow <ObjectDisposedException>(() => reader.InnerNumber.Ignore()); AssertThrow <ObjectDisposedException>(() => reader.OuterId.Ignore()); AssertThrow <ObjectDisposedException>(() => reader.ReadContentsAsObject()); } using (var writer = XmlWriter.Create(Console.Out, new XmlWriterSettings() { Indent = true })) { new EmberConverter(GlowTypes.Instance).ToXml(input, writer); Console.WriteLine(); Console.WriteLine(); } }