Exemplo n.º 1
0
        public async Task Overview()
        {
            var productRepo = new InMemoryProductRepository();
            await productRepo.AddOrUpdate(new[] { new Product {
                                                      Key = "test1"
                                                  } });

            var builder = new WebHostBuilder()
                          .ConfigureServices(services => services
                                             .AddSingleton <IProductRepository>(productRepo)
                                             .AddSingleton <ProductHub>()
                                             )
                          .Configure(app => app
                                     .UseWebSockets()
                                     .Use(ProcessWebSocketRequest)
                                     );

            using (var server = new TestServer(builder))
            {
                var client = server.CreateWebSocketClient();
                var ws     = await client.ConnectAsync(new Uri("ws://localhost/overview"), CancellationToken.None);

                var msg = await ws.Receive <List <Product> >();

                Assert.Equal("test1", msg.Data[0].Key);

                await productRepo.AddOrUpdate(new[] { new Product {
                                                          Key = "test2"
                                                      } });

                msg = await ws.Receive <List <Product> >();

                Assert.Equal("test2", msg.Data[0].Key);
            }
        }