Example #1
0
        private async Task GetMovement()
        {
            if (!_tcp.Connected)
            {
                _reader.Stop();
                Console.WriteLine($"Movement detector no longer connected.");
                return;
            }

            if (_tcp.AvailableData <= 0)
            {
                return;
            }

            await SendMovementPictures(_tcp.Read());
        }
Example #2
0
        public void CanReadAppPattern()
        {
            using var connector        = new TcpConnector(out ushort port);
            using var connectingClient = new TcpReader(IPAddress.Any, port);

            while (connector.ConnectedClientsCount <= 0)
            {
                Thread.Sleep(10);
            }

            string sendingString = "This is supposed to be image data.";

            connector.Write(BitConverter.GetBytes((ushort)sendingString.Length));
            connector.Write(Encoding.UTF8.GetBytes(sendingString));

            Assert.AreEqual(sendingString, Encoding.UTF8.GetString(connectingClient.Read()));
        }
Example #3
0
        public void CanReadWriteData()
        {
            TcpReader connectingClient = null;

            using var connector        = new TcpConnector(out ushort port);
            connector.ClientConnected += Continue;
            connectingClient           = new TcpReader(IPAddress.Any, port);

            bool finished         = false;
            int? receivedAtClient = default;

            // int receivedAtListener = default;

            void Continue(object sender, NetworkStream e)
            {
                //Write to client / Read from client
                e.WriteByte(123);
                receivedAtClient = connectingClient.Read(1)[0];

                //Write to listener / Read from listener
                // connectingClient?.GetStream().WriteByte(213);
                // receivedAtListener = e.ReadByte();

                finished = true;
            }

            while (!finished)
            {
                Thread.Sleep(10);
            }

            Assert.AreEqual(123, receivedAtClient);
            // Assert.AreEqual(213, receivedAtListener);

            connectingClient?.Dispose();
        }
        public void TcpReader_WhenSeveralDataMessageSentAcrossMoreThanOneWriteAndNoMessageSeperators_ThenNoMessagesIsObserved(int tcpReaderBufferSize)
        {
            //Arrange
            _tcpReader = new TcpReader(_serverSideTcpClient, new MessageParser(MessageSeperator), tcpReaderBufferSize);
            const string dataToSend = DataMessage;

            //Act
            var streamWriter = new StreamWriter(_tcpClient.GetStream());
            _tcpReader.Read().Subscribe(data =>
            {
                _stringDataReturned += data;
            }, _completed.Set);

            streamWriter.Write(dataToSend);
            streamWriter.Flush();
            streamWriter.Write(dataToSend);
            streamWriter.Flush();
            streamWriter.Close();

            //Assert
            _completed.Wait();
            Assert.AreEqual(string.Empty, _stringDataReturned);
        }
        public void TcpReader_WhenDataMessageSentAndMessageSeperatorSentIn2Fragments_Then1MessagesIsObserved(int tcpReaderBufferSize)
        {
            //Arrange
            const string dataToSend = DataMessage;
            _tcpReader = new TcpReader(_serverSideTcpClient, new MessageParser(MessageSeperator), tcpReaderBufferSize);

            //Act
            var streamWriter = new StreamWriter(_tcpClient.GetStream());
            _tcpReader.Read().Subscribe(data =>
            {
                _stringDataReturned += data;
            }, _completed.Set);

            streamWriter.Write(dataToSend);
            streamWriter.Flush();
            streamWriter.Write(MessageSeperator.Substring(0,2));
            streamWriter.Flush();
            streamWriter.Write(MessageSeperator.Substring(2, MessageSeperator.Length-2));
            streamWriter.Flush();
            streamWriter.Close();

            //Assert
            _completed.Wait();
            Assert.AreEqual(dataToSend, _stringDataReturned);
        }
        public void TcpReader_WhenDataIsSentToStreamWithFullMessageSeperator_ThenDataIsObserved(int tcpReaderBufferSize, string dataToSend, string dataToExpect)
        {
            //Arrange
            _tcpReader = new TcpReader(_serverSideTcpClient, new MessageParser(MessageSeperator), tcpReaderBufferSize);

            //Act
            var streamWriter = new StreamWriter(_tcpClient.GetStream());
            _tcpReader.Read().Subscribe(data =>
                {
                    _stringDataReturned += data;
                }, _completed.Set);

            streamWriter.Write(dataToSend);
            streamWriter.Flush();
            streamWriter.Close();

            //Assert
            _completed.Wait();
            Assert.AreEqual(dataToExpect, _stringDataReturned);
        }