コード例 #1
0
ファイル: ChannelTestBase.cs プロジェクト: rsumner31/corefx2
        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);
        }
コード例 #2
0
        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);
        }