public void ShouldCreateNonLockingSession()
        {
            // Arrange

            var factory     = new NonLockingSessionFactory();
            var tcpClient   = Mock.Of <IClient>(stc => stc.Semaphore == new SemaphoreSlim(1, 1));
            var environment = new EnvironmentResponse(1, 42);

            // Act

            var result = factory.Create(tcpClient);

            // Assert

            Assert.IsInstanceOfType(result, typeof(Session));
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            var nonLockingSessionFactory = new NonLockingSessionFactory();
            var sessionFactory = new SessionFactory();
            var requestWriter = new RequestWriter();
            var connector = new ClientConnector(nonLockingSessionFactory, requestWriter);

            using (var client = new Client(connector, new TcpClientAdapter()))
            {
                client.Configure(new Configuration("localhost", 1491, "SecretPassword", ConnectionMode.Search));

                client.Connect();

                using (var session = sessionFactory.Create(client))
                {
                    Console.WriteLine(".NET Sonic Terminal");
                    Console.WriteLine("Write .read to read next line from the server.");

                    while (true)
                    {
                        while (true)
                        {
                            Console.Write($"W > ");

                            var input = Console.ReadLine();
                            if (input.ToLower().Trim() == ".read")
                            {
                                break;
                            }
                            else if (!string.IsNullOrWhiteSpace(input))
                            {
                                session.Write(input);
                                break;
                            }
                        }

                        var response = session.Read();
                        Console.WriteLine($"R > {response}");

                        if (response.StartsWith("ENDED"))
                        {
                            break;
                        }
                    }
                }
            }
        }