public void DuplicateListenFails()
        {
            Mock<ICoreSettings> settings = new Mock<ICoreSettings>();

            NetworkFacadeFactory factory = new NetworkFacadeFactory(settings.Object);
            factory.Listen( "127.0.0.1", 20201, s => s.ToString() );
            Assert.Throws<InvalidOperationException>( () => factory.Listen( "127.0.0.1", 20202, s => s.ToString() ) );
        }
        public void EndListenTest()
        {
            Mock<ICoreSettings> settings = new Mock<ICoreSettings>();

            NetworkFacadeFactory factory = new NetworkFacadeFactory(settings.Object);
            factory.Listen("127.0.0.1", 4587, s => Assert.Pass());

            Assert.Throws<InvalidOperationException>(() => factory.Listen("127.0.0.1", 4588, s => Assert.Fail()));

            factory.EndListen();

            factory.Listen("127.0.0.1", 4588, s => Assert.Pass());
            factory.EndListen();
        }
        public void ListenTest()
        {
            Mock<ICoreSettings> settings = new Mock<ICoreSettings>();

            ManualResetEvent trigger = new ManualResetEvent(false);
            bool isConnected = false;

            NetworkFacadeFactory factory = new NetworkFacadeFactory(settings.Object);
            factory.Listen("127.0.0.1",
                            8081,
                            s =>
                            {
                                Assert.That( s, Is.Not.Null );
                                isConnected = true;
                                trigger.Set();
                            } );

            TcpClient client = new TcpClient( "localhost", 8081 );

            Assert.That( trigger.WaitOne( 10000 ), Is.True );
            Assert.That( isConnected, Is.True, "The callback delegate was not invoked when a client connected" );
        }
        public void SanityVerifyInterFaceContract()
        {
            Mock<ICoreSettings> settings = new Mock<ICoreSettings>();

            NetworkFacadeFactory factory = new NetworkFacadeFactory(settings.Object);
            factory.Listen(null, -1, null);
        }
        public void InvalidAddressTest()
        {
            Mock<ICoreSettings> settings = new Mock<ICoreSettings>();

            NetworkFacadeFactory factory = new NetworkFacadeFactory(settings.Object);

            Assert.Throws<ArgumentException>(() => factory.Listen("localhost", 45983, s => Assert.Fail()));
        }