예제 #1
0
        public void Accept(MudSocket socket)
        {
            var tokenStream = new TokenStream(socket);
            var connection  = new TelnetConnection(tokenStream, TelnetHandlerSet.Default(tokenStream));

            ConnectionReceived(connection);
        }
예제 #2
0
        public void CreateAConnectionWithSocketProvided()
        {
            var tokenStream = new TokenStream(_mockSocket.Object);
            var connection  = new TelnetConnection(tokenStream, TelnetHandlerSet.Default(tokenStream));

            Assert.IsNotNull(connection);
        }
예제 #3
0
        public void WriteConvertsStringToTokens()
        {
            var telnetConnection = new TelnetConnection(_mockTokenStream.Object,
                                                        TelnetHandlerSet.Default(_mockTokenStream.Object));

            telnetConnection.Write("T");

            _mockTokenFactory.Verify(factory => factory.Content('T'.ToByte()), Times.Once());
        }
예제 #4
0
        public void WriteCallsTokenStreamWriteForAConvertedToken()
        {
            _mockTokenStream.Setup(stream => stream.Write(_mockToken.Object));
            var telnetConnection = new TelnetConnection(_mockTokenStream.Object,
                                                        TelnetHandlerSet.Default(_mockTokenStream.Object));

            telnetConnection.Write("T");

            _mockTokenStream.Verify(stream => stream.Write(_mockToken.Object), Times.Once());
        }
예제 #5
0
        public void DisableLocalEchoForPlayer()
        {
            _mockTokenFactory.Setup(factory => factory.Command(Command.Do, Option.SuppressLocalEcho))
            .Returns(_mockToken.Object);
            _mockTokenStream.Setup(stream => stream.Write(_mockToken.Object));
            var telnetConnection = new TelnetConnection(_mockTokenStream.Object,
                                                        TelnetHandlerSet.Default(_mockTokenStream.Object));

            telnetConnection.SetRemote(Option.SuppressLocalEcho, true);

            _mockTokenStream.Verify(stream => stream.Write(_mockToken.Object), Times.Once());
        }
예제 #6
0
        public void PollConnectionForDataAvailable()
        {
            TokenFactory.Instance = new TokenFactory();
            _mockSocket.Setup(socket => socket.Read())
            .Returns("test string\n".ToBytes());
            var tokenStream = new TokenStream(_mockSocket.Object);
            var connection  = new TelnetConnection(tokenStream, TelnetHandlerSet.Default(tokenStream));

            var data = string.Join("", connection.ReadLines(Encoding.ASCII));

            Assert.AreEqual("test string", data);
        }
예제 #7
0
        public void SetUp()
        {
            _handler = new Mock <TelnetHandler>(Option.SuppressLocalEcho, null, null);
            _handler.Setup(h => h.Option).Returns(Option.SuppressLocalEcho);

            _defaultHandler = new Mock <TelnetHandler>(Option.Status, null, null);
            _defaultHandler.Setup(h => h.Option).Returns(Option.Status);

            _tokenStream = new Mock <TokenStream>(null);
            _tokenStream.Setup(stream => stream.Write(It.IsAny <Token>()));

            _handlerSet = new TelnetHandlerSet(_tokenStream.Object, option => _defaultHandler.Object, _handler.Object);
        }
예제 #8
0
 public TelnetConnection(TokenStream stream, TelnetHandlerSet set)
 {
     _stream = stream;
     _set    = set;
 }