public void Dispose_StreamsAreDisposed()
    {
        var streams = FullDuplexStream.CreateStreams();
        var handler = new DirectMessageHandler(streams.Item1, streams.Item2, Encoding.UTF8);

        Assert.False(streams.Item1.IsDisposed);
        Assert.False(streams.Item2.IsDisposed);
        handler.Dispose();
        Assert.True(streams.Item1.IsDisposed);
        Assert.True(streams.Item2.IsDisposed);
    }
    public async Task Ctor_AcceptsNullReceivingStream()
    {
        var handler = new DirectMessageHandler(this.sendingStream, null, Encoding.UTF8);

        Assert.False(handler.CanRead);
        Assert.True(handler.CanWrite);

        await Assert.ThrowsAsync <InvalidOperationException>(() => handler.ReadAsync(TimeoutToken));

        string expected = "bye";
        await handler.WriteAsync(expected, TimeoutToken);

        string actual = await handler.WrittenMessages.DequeueAsync(TimeoutToken);

        Assert.Equal(expected, actual);
    }
    public async Task Ctor_AcceptsNullSendingStream()
    {
        var handler = new DirectMessageHandler(null, this.receivingStream, Encoding.UTF8);

        Assert.True(handler.CanRead);
        Assert.False(handler.CanWrite);

        await Assert.ThrowsAsync <InvalidOperationException>(() => handler.WriteAsync("hi", this.TimeoutToken).AsTask());

        JToken expected = "bye";

        handler.MessagesToRead.Enqueue(expected);
        JToken actual = await handler.ReadAsync(this.TimeoutToken);

        Assert.Equal(expected, actual);
    }
    public InteropTestBase(ITestOutputHelper logger, bool serverTest)
        : base(logger)
    {
        var streams = Nerdbank.FullDuplexStream.CreateStreams();

        this.serverStream = streams.Item1;
        this.clientStream = streams.Item2;

        if (serverTest)
        {
            this.messageHandler = new DirectMessageHandler(this.clientStream, this.serverStream, Encoding.UTF8);
        }
        else
        {
            this.messageHandler = new DirectMessageHandler(this.serverStream, this.clientStream, Encoding.UTF8);
        }
    }
示例#5
0
 public StreamMessageHandlerTests(ITestOutputHelper logger)
     : base(logger)
 {
     this.handler = new DirectMessageHandler();
 }
 public InteropTestBase(ITestOutputHelper logger)
     : base(logger)
 {
     this.messageHandler = new DirectMessageHandler();
 }
 public DelimitedMessageHandlerTests(ITestOutputHelper logger) : base(logger)
 {
     this.handler = new DirectMessageHandler(this.sendingStream, this.receivingStream, Encoding.UTF8);
 }