Beispiel #1
0
        public void ByteStreamShouldReturnCharA()
#endif
        {
            ISocket socket = A.Fake <ISocket>();

            using (INetworkStream networkStream = A.Fake <INetworkStream>())
            {
                A.CallTo(() => socket.GetStream()).Returns(networkStream);
                A.CallTo(() => socket.Connected).Returns(true);
                bool isFirst = true;
                A.CallTo(() => socket.Available).ReturnsLazily(() =>
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        return(1);
                    }
                    return(0);
                });
                TcpByteStream tcpByteStream = new TcpByteStream(socket);
                A.CallTo(() => networkStream.ReadByte()).ReturnsNextFromSequence(65);
                tcpByteStream.Connected.Should().BeTrue();
                ByteStreamHandler sut = new ByteStreamHandler(tcpByteStream, new CancellationTokenSource());

#if ASYNC
                string response = await sut.ReadAsync(TimeSpan.FromMilliseconds(10));
#else
                string response = sut.Read(TimeSpan.FromMilliseconds(10));
#endif

                response.Should().Be("A");
            }
        }
        public void WhenIacDoSgaByteStreamShouldReturnEmptyAndReplyIacWill()
#endif
        {
            ISocket socket = A.Fake <ISocket>();

            using (INetworkStream networkStream = A.Fake <INetworkStream>())
            {
                A.CallTo(() => socket.GetStream()).Returns(networkStream);
                A.CallTo(() => socket.Connected).Returns(true);
                bool isFirst = true;
                A.CallTo(() => socket.Available).ReturnsLazily(() =>
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        return(1);
                    }
                    return(0);
                });
                TcpByteStream tcpByteStream = new TcpByteStream(socket);
                A.CallTo(() => networkStream.ReadByte()).ReturnsNextFromSequence(new int[] { (int)Commands.InterpretAsCommand, (int)Commands.Do, (int)Options.SuppressGoAhead });
                tcpByteStream.Connected.Should().BeTrue();
                ByteStreamHandler sut = new ByteStreamHandler(tcpByteStream, new CancellationTokenSource());

#if ASYNC
                string response = await sut.ReadAsync(TimeSpan.FromMilliseconds(10));
#else
                string response = sut.Read(TimeSpan.FromMilliseconds(10));
#endif
                response.Should().BeEmpty();
                A.CallTo(() => networkStream.WriteByte((byte)Commands.InterpretAsCommand)).MustHaveHappened();
                A.CallTo(() => networkStream.WriteByte((byte)Commands.Will)).MustHaveHappened();
            }
        }
Beispiel #3
0
        public void ByteStreamShouldReturnUponCancellation()
#endif
        {
            ISocket        socket        = A.Fake <ISocket>();
            INetworkStream networkStream = A.Fake <INetworkStream>();

            A.CallTo(() => socket.GetStream()).Returns(networkStream);
            A.CallTo(() => socket.Connected).Returns(true);
            A.CallTo(() => socket.Available).Returns(1);
            TcpByteStream tcpByteStream = new TcpByteStream(socket);

            A.CallTo(() => networkStream.ReadByte()).Returns(142);
            tcpByteStream.Connected.Should().BeTrue();
            CancellationTokenSource cancellationToken = new CancellationTokenSource();

            Stopwatch         stopwatch = new Stopwatch();
            ByteStreamHandler sut       = new ByteStreamHandler(tcpByteStream, cancellationToken);

#if ASYNC
            cancellationToken.CancelAfter(100);
            await sut.ReadAsync(TimeSpan.FromMilliseconds(1000));
#else
            Thread t = new Thread(new ThreadStart(() =>
            {
                AutoResetEvent are = new AutoResetEvent(false);
                are.WaitOne(100);
                cancellationToken.Cancel();
            }));
            t.Start();
            sut.Read(TimeSpan.FromMilliseconds(1000));
#endif

            stopwatch.ElapsedMilliseconds.Should().BeLessThan(500);
        }
    public void ByteStreamShouldReturnEmptyResponse()
#endif
    {
      ISocket socket = A.Fake<ISocket>();
      INetworkStream networkStream = A.Fake<INetworkStream>();
      A.CallTo(() => socket.GetStream()).Returns(networkStream);
      A.CallTo(() => socket.Connected).Returns(true);
      bool isFirst = true;
      A.CallTo(() => socket.Available).ReturnsLazily(() =>
      {
        if (isFirst)
        {
          isFirst = false;
          return 1;
        }
        return 0;
      });
      TcpByteStream tcpByteStream = new TcpByteStream(socket);
      A.CallTo(() => networkStream.ReadByte()).ReturnsNextFromSequence(-1);
      tcpByteStream.Connected.Should().BeTrue();
      ByteStreamHandler sut = new ByteStreamHandler(tcpByteStream, new CancellationTokenSource());

#if ASYNC
      string response = await sut.ReadAsync(TimeSpan.FromMilliseconds(10));
#else
      string response = sut.Read(TimeSpan.FromMilliseconds(10));
#endif

      response.Should().BeEmpty();
    }
Beispiel #5
0
        public void ByteStreamShouldReturnEmptyResponse()
#endif
        {
            var socket = A.Fake <ISocket>();

            using (var networkStream = A.Fake <INetworkStream>())
            {
                A.CallTo(() => socket.GetStream()).Returns(networkStream);
                A.CallTo(() => socket.Connected).Returns(true);
                var isFirst = true;
                A.CallTo(() => socket.Available).ReturnsLazily(() =>
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        return(1);
                    }
                    return(0);
                });
                var tcpByteStream = new TcpByteStream(socket);
                A.CallTo(() => networkStream.ReadByte()).ReturnsNextFromSequence(-1);
                tcpByteStream.Connected.Should().BeTrue();
                var sut = new ByteStreamHandler(tcpByteStream, new CancellationTokenSource());

#if ASYNC
                var response = await sut.ReadAsync(TimeSpan.FromMilliseconds(10)).ConfigureAwait(false);
#else
                var response = sut.Read(TimeSpan.FromMilliseconds(10));
#endif

                response.Should().BeEmpty();
            }
        }
    public void UnconnectedByteStreamShouldReturnEmptyResponse()
#endif
    {
      ByteStreamHandler sut = new ByteStreamHandler(A.Fake<IByteStream>(), new CancellationTokenSource());
#if ASYNC
      (await sut.ReadAsync(new TimeSpan())).Should().Be(string.Empty);
#else
      sut.Read(new TimeSpan()).Should().Be(string.Empty);
#endif
    }
Beispiel #7
0
        public void UnconnectedByteStreamShouldReturnEmptyResponse()
#endif
        {
            ByteStreamHandler sut = new ByteStreamHandler(A.Fake <IByteStream>(), new CancellationTokenSource());

#if ASYNC
            (await sut.ReadAsync(new TimeSpan())).Should().Be(string.Empty);
#else
            sut.Read(new TimeSpan()).Should().Be(string.Empty);
#endif
        }
Beispiel #8
0
        public void WhenIacDont1ByteStreamShouldReturnEmptyAndReplyIacDont()
#endif
        {
            var socket = A.Fake <ISocket>();

            using (var networkStream = A.Fake <INetworkStream>())
            {
                A.CallTo(() => socket.GetStream()).Returns(networkStream);
                A.CallTo(() => socket.Connected).Returns(true);
                var isFirst = true;
                A.CallTo(() => socket.Available).ReturnsLazily(() =>
                {
                    if (isFirst)
                    {
                        isFirst = false;
                        return(1);
                    }
                    return(0);
                });
                using (var tcpByteStream = new TcpByteStream(socket))
                {
                    A.CallTo(() => networkStream.ReadByte()).ReturnsNextFromSequence(new int[] { (int)Commands.InterpretAsCommand, (int)Commands.Dont, 1 });
                    tcpByteStream.Connected.Should().BeTrue();
                    using (var sut = new ByteStreamHandler(tcpByteStream, new CancellationTokenSource()))
                    {
#if ASYNC
                        var response = await sut.ReadAsync(TimeSpan.FromMilliseconds(10)).ConfigureAwait(false);
#else
                        var response = sut.Read(TimeSpan.FromMilliseconds(10));
#endif

                        response.Should().BeEmpty();
                        A.CallTo(() => networkStream.WriteByte((byte)Commands.InterpretAsCommand)).MustHaveHappened();
                        A.CallTo(() => networkStream.WriteByte((byte)Commands.Dont)).MustHaveHappened();
                    }
                }
            }
        }
    public void ByteStreamShouldReturnUponCancellation()
#endif
    {
      ISocket socket = A.Fake<ISocket>();
      INetworkStream networkStream = A.Fake<INetworkStream>();
      A.CallTo(() => socket.GetStream()).Returns(networkStream);
      A.CallTo(() => socket.Connected).Returns(true);
      A.CallTo(() => socket.Available).Returns(1);
      TcpByteStream tcpByteStream = new TcpByteStream(socket);
      A.CallTo(() => networkStream.ReadByte()).Returns(142);
      tcpByteStream.Connected.Should().BeTrue();
      CancellationTokenSource cancellationToken = new CancellationTokenSource();

      Stopwatch stopwatch = new Stopwatch();
      ByteStreamHandler sut = new ByteStreamHandler(tcpByteStream, cancellationToken);

#if ASYNC
      cancellationToken.CancelAfter(100);
      await sut.ReadAsync(TimeSpan.FromMilliseconds(1000));
#else
      Thread t = new Thread(new ThreadStart(() =>
      {
        AutoResetEvent are = new AutoResetEvent(false);
        are.WaitOne(100);
        cancellationToken.Cancel();
      }));
      t.Start();
      sut.Read(TimeSpan.FromMilliseconds(1000));
#endif

      stopwatch.ElapsedMilliseconds.Should().BeLessThan(500);
    }
    public void WhenIacDontSgaByteStreamShouldReturnEmptyAndReplyIacDo()
#endif
    {
      ISocket socket = A.Fake<ISocket>();
      INetworkStream networkStream = A.Fake<INetworkStream>();
      A.CallTo(() => socket.GetStream()).Returns(networkStream);
      A.CallTo(() => socket.Connected).Returns(true);
      bool isFirst = true;
      A.CallTo(() => socket.Available).ReturnsLazily(() =>
      {
        if (isFirst)
        {
          isFirst = false;
          return 1;
        }
        return 0;
      });
      TcpByteStream tcpByteStream = new TcpByteStream(socket);
      A.CallTo(() => networkStream.ReadByte()).ReturnsNextFromSequence(new int[] { (int)Commands.InterpretAsCommand, (int)Commands.Dont, (int)Options.SuppressGoAhead });
      tcpByteStream.Connected.Should().BeTrue();
      ByteStreamHandler sut = new ByteStreamHandler(tcpByteStream, new CancellationTokenSource());

#if ASYNC
      string response = await sut.ReadAsync(TimeSpan.FromMilliseconds(10));
#else
      string response = sut.Read(TimeSpan.FromMilliseconds(10));
#endif

      response.Should().BeEmpty();
      A.CallTo(() => networkStream.WriteByte((byte)Commands.InterpretAsCommand)).MustHaveHappened();
      A.CallTo(() => networkStream.WriteByte((byte)Commands.Do)).MustHaveHappened();
    }
        public async Task UnconnectedByteStreamShouldReturnEmptyResponse()
        {
            ByteStreamHandler sut = new ByteStreamHandler(A.Fake <IByteStream>(), new CancellationTokenSource());

            (await sut.ReadAsync(new TimeSpan())).Should().Be(string.Empty);
        }
Beispiel #12
0
 public async Task UnconnectedByteStreamShouldReturnEmptyResponse()
 {
   ByteStreamHandler sut = new ByteStreamHandler(A.Fake<IByteStream>(), new CancellationTokenSource());
   
   (await sut.ReadAsync(new TimeSpan())).Should().Be(string.Empty);
 }