public void UsageTest()
        {
            var resetEvent = new ManualResetEvent(false);

            var location = new Uri("ws://localhost");

            var host = new StyxHost(location);
            host.RegisterRoute("/test", () => new TestRoute());
            host.RegisterRoute("/test/{message}", h =>
            {
                h.Send(h.Route.Message as string);
                h.OnMessage = h.Send;
            });
            host.RegisterRoute("/test/ahoy", c => c.Send("ahoy"), () => Console.WriteLine("Closed"));
            host.RegisterRoute("/test/query", h =>
            {
                foreach (string key in h.Query.Keys)
                    h.Send(key);
            });
            host.Start();

            resetEvent.WaitOne(TimeSpan.FromMinutes(15));

            host.Dispose();
        }
示例#2
0
        public void DisposingTheHostShouldDisposeTheSocketListener()
        {
            var logger = MockRepository.GenerateMock<ILogger>();
            var engine = MockRepository.GenerateMock<IStyxEngine>();
            var routeRegister = MockRepository.GenerateMock<IRouteRegister>();
            var hostConfiguration = MockRepository.GenerateMock<IHostConfiguration>();

            var socketListener = MockRepository.GenerateStrictMock<ISocketListener>();
            socketListener.Expect(s => s.Dispose()).Repeat.Once();

            var bootstrapper = MockRepository.GenerateStrictMock<IBootstrapper>();
            bootstrapper.Expect(b => b.Logger).Return(logger);
            bootstrapper.Expect(b => b.Engine).Return(engine);
            bootstrapper.Expect(b => b.RouteRegister).Return(routeRegister);
            bootstrapper.Expect(b => b.SocketListener).Return(socketListener);
            bootstrapper.Expect(b => b.HostConfiguration).Return(hostConfiguration);

            var uri = new Uri("ws://localhost");

            var host = new StyxHost(uri, bootstrapper: bootstrapper);

            host.Dispose();
        }