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