コード例 #1
0
        public async Task GivenValidRequest_SendMessage()
        {
            var client = await _factory.GetAuthenticatedClientAsync();

            // init DB for test
            var context = _factory.InitializeDbForTests();

            var        receiverUserId = Guid.Parse("9c7ff9c5-90bd-4207-9dff-01da2ceece21");
            MessageDto newMessage     = new MessageDto()
            {
                AttachFiles    = null,
                ConversationId = new Guid("b73477a4-f61d-46fa-873c-7d71c01dfbd2"),
                Date           = DateTime.UtcNow,
                IsPin          = false,
                Message        = "ABC123456",
                Type           = "received"
            };

            var connection = new HubConnectionBuilder().WithUrl("http://localhost/chathub"
                                                                , options =>
            {
                options.HttpMessageHandlerFactory = _ => _factory.Server.CreateHandler();
                options.AccessTokenProvider       = () => _factory.GetAccessTokenByUserAsync("testuser", "testuser");
            }
                                                                )
                             .Build();
            await connection.StartAsync();

            var connection1 = new HubConnectionBuilder().WithUrl("http://localhost/chathub"
                                                                 , options =>
            {
                options.HttpMessageHandlerFactory = _ => _factory.Server.CreateHandler();
                options.AccessTokenProvider       = () => _factory.GetAccessTokenByUserAsync("testuser3", "testuser3");
            }
                                                                 )
                              .Build();
            await connection1.StartAsync();

            var content = IntegrationTestHelper.GetRequestContent(newMessage);

            var response = await client.PostAsync($"/api/Messages/SendMessageToUser/{receiverUserId}", content);

            response.EnsureSuccessStatusCode();

            // release DB
            _factory.DisposeDbForTests(context);
        }