public async Task ReadAsync_AfterFaultedChannel_Throws() { Channel <int> c = CreateChannel(); var e = new FormatException(); c.Writer.Complete(e); Assert.True(c.Reader.Completion.IsFaulted); ChannelClosedException cce = await Assert.ThrowsAsync <ChannelClosedException>(() => c.Reader.ReadAsync().AsTask()); Assert.Same(e, cce.InnerException); }
public void Ctors() { var e = new ChannelClosedException(); Assert.NotEmpty(e.Message); Assert.Null(e.InnerException); e = new ChannelClosedException("hello"); Assert.Equal("hello", e.Message); Assert.Null(e.InnerException); var inner = new FormatException(); e = new ChannelClosedException("hello", inner); Assert.Equal("hello", e.Message); Assert.Same(inner, e.InnerException); }
public void Serialization_Roundtrip() { var s = new MemoryStream(); var inner = new InvalidOperationException("inner"); var outer = new ChannelClosedException("outer", inner); new BinaryFormatter().Serialize(s, outer); s.Position = 0; var newOuter = (ChannelClosedException) new BinaryFormatter().Deserialize(s); Assert.NotSame(outer, newOuter); Assert.Equal(outer.Message, newOuter.Message); Assert.NotNull(newOuter.InnerException); Assert.NotSame(inner, newOuter.InnerException); Assert.Equal(inner.Message, newOuter.InnerException.Message); }