Пример #1
0
        public void GivenIHaveACreateChatMessagesRequest()
        {
            var request = new AddInstantMessageRequest()
            {
                From        = _fromUsername,
                MessageText = MessageBody,
                To          = _toUsername
            };

            _context.Request = _context.Post(SaveInstantMessage(_context.Test.ConferenceResponse.Id), request);
        }
Пример #2
0
        public async Task Should_fail_validation_when_message_text_is_empty()
        {
            var request = new AddInstantMessageRequest
            {
                From = "Display Name"
            };
            var result = await _validator.ValidateAsync(request);

            result.Errors.Any(x => x.ErrorMessage == AddMessageRequestValidation.NoMessageTextErrorMessage)
            .Should().BeTrue();
        }
Пример #3
0
        public async Task Should_fail_validation_when_from_is_empty()
        {
            var request = new AddInstantMessageRequest
            {
                MessageText = "test message",
            };
            var result = await _validator.ValidateAsync(request);

            result.Errors.Any(x => x.ErrorMessage == AddMessageRequestValidation.NoFromErrorMessage)
            .Should().BeTrue();
        }
Пример #4
0
        public void GivenIHaveAValidSetInstantMessageRequestWithANonexistentParticipant()
        {
            _context.Uri        = SaveInstantMessage(_context.Test.Conference.Id);
            _context.HttpMethod = HttpMethod.Post;
            var request = new AddInstantMessageRequest
            {
                From        = "non-existent-participant",
                MessageText = Internet.DomainWord()
            };
            var jsonBody = RequestHelper.Serialise(request);

            _context.HttpContent = new StringContent(jsonBody, Encoding.UTF8, "application/json");
        }
Пример #5
0
        public async Task Should_fail_validation_when_message_text_is_too_long()
        {
            var request = new AddInstantMessageRequest
            {
                From        = "Display Name",
                MessageText = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
            };

            var result = await _validator.ValidateAsync(request);

            result.Errors.Any(x => x.ErrorMessage == AddMessageRequestValidation.MaxMessageLength)
            .Should().BeTrue();
        }
Пример #6
0
        public async Task Should_pass_validation()
        {
            var request = new AddInstantMessageRequest
            {
                From        = "Display name",
                MessageText = "This is a test message",
                To          = "Receiver display name"
            };

            var result = await _validator.ValidateAsync(request);

            result.IsValid.Should().BeTrue();
        }
Пример #7
0
        public async Task Should_successfully_save_given_instantmessages_request_and_return_ok_result()
        {
            var request = new AddInstantMessageRequest
            {
                From        = "Display From",
                MessageText = "Test message text",
                To          = "Display To"
            };

            var result = await _instantMessageController.AddInstantMessageToConferenceAsync(Guid.NewGuid(), request);

            var typedResult = (OkObjectResult)result;

            typedResult.StatusCode.Should().Be((int)HttpStatusCode.OK);
            typedResult.Value.Should().Be("InstantMessage saved");
            _commandHandler.Verify(c => c.Handle(It.IsAny <AddInstantMessageCommand>()), Times.Once);
        }
        public async Task <IActionResult> AddInstantMessageToConferenceAsync(Guid conferenceId, AddInstantMessageRequest request)
        {
            _logger.LogDebug("Saving instant message");

            try
            {
                var command = new AddInstantMessageCommand(conferenceId, request.From, request.MessageText, request.To);
                await _commandHandler.Handle(command);

                return(Ok("InstantMessage saved"));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Unable to add instant messages");
                return(BadRequest());
            }
        }