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