public void ExceptionTest()
{
AssertThrow<ArgumentNullException>(() => new EmberWriter(null, 1).Dispose());
AssertThrow<ArgumentException>(() => new EmberWriter(new MemoryStream(), 0).Dispose());
using (var writer = new EmberWriter(new MemoryStream(), 1))
{
var outer = EmberId.CreateApplication(0);
AssertThrow<ArgumentNullException>(
() => writer.WriteValue(outer, (byte[])null),
() => writer.WriteValue(outer, (int[])null),
() => writer.WriteValue(outer, (string)null));
AssertThrow<ArgumentOutOfRangeException>(
() => writer.WriteStartApplicationDefinedType(outer, InnerNumber.FirstApplication - 1));
writer.Dispose();
AssertThrow<ObjectDisposedException>(
() => writer.WriteValue(outer, true),
() => writer.WriteValue(outer, 0),
() => writer.WriteValue(outer, new byte[] { }),
() => writer.WriteValue(outer, 0.0),
() => writer.WriteValue(outer, string.Empty),
() => writer.WriteValue(outer, new int[] { }),
() => writer.WriteStartSequence(outer),
() => writer.WriteStartSet(outer),
() => writer.WriteStartApplicationDefinedType(outer, InnerNumber.FirstApplication),
() => writer.WriteEndContainer());
}
}