public static void XmlBaseWriter_CheckAsync_ThrowInvalidOperationException() { int byteSize = 1024; byte[] bytes = GetByteArray(byteSize); using (var ms = new MemoryStreamWithBlockAsync()) { var writer = XmlDictionaryWriter.CreateTextWriter(ms); writer.WriteStartDocument(); writer.WriteStartElement("data"); ms.blockAsync(true); var t1 = writer.WriteBase64Async(bytes, 0, byteSize); var t2 = Assert.ThrowsAsync <InvalidOperationException>(() => writer.WriteBase64Async(bytes, 0, byteSize)); InvalidOperationException e = t2.Result; Assert.StrictEqual(e.Message, "An asynchronous operation is already in progress."); // let the first task complete ms.blockAsync(false); t1.Wait(); } }
public static void XmlBaseWriter_CheckAsync_ThrowInvalidOperationException() { int byteSize = 1024; byte[] bytes = GetByteArray(byteSize); using (var ms = new MemoryStreamWithBlockAsync()) { var writer = XmlDictionaryWriter.CreateTextWriter(ms); writer.WriteStartDocument(); writer.WriteStartElement("data"); ms.blockAsync(true); var t1 = writer.WriteBase64Async(bytes, 0, byteSize); var t2 = Assert.ThrowsAsync<InvalidOperationException>(() => writer.WriteBase64Async(bytes, 0, byteSize)); InvalidOperationException e = t2.Result; bool isAsyncIsRunningException = e.Message.Contains("XmlAsyncIsRunningException") || e.Message.Contains("in progress"); Assert.True(isAsyncIsRunningException, "The exception is not XmlAsyncIsRunningException."); // let the first task complete ms.blockAsync(false); t1.Wait(); } }
public static void XmlBaseWriter_CheckAsync_ThrowInvalidOperationException() { int byteSize = 1024; byte[] bytes = GetByteArray(byteSize); using (var ms = new MemoryStreamWithBlockAsync()) { var writer = XmlDictionaryWriter.CreateTextWriter(ms); writer.WriteStartDocument(); writer.WriteStartElement("data"); ms.blockAsync(true); var t1 = writer.WriteBase64Async(bytes, 0, byteSize); var t2 = Assert.ThrowsAsync<InvalidOperationException>(() => writer.WriteBase64Async(bytes, 0, byteSize)); InvalidOperationException e = t2.Result; Assert.StrictEqual(e.Message, "An asynchronous operation is already in progress."); // let the first task complete ms.blockAsync(false); t1.Wait(); } }