public async void Handle_ShouldCallInsertMessage()
        {
            // ARRANGE
            var validator                = new CreateMessageCommandValidator();
            var messageRepositoryMock    = new Mock <IMessageRepository>();
            var attachmentRepositoryMock = new Mock <IAttachmentRepository>();
            var loggerMock               = new Mock <ILogger>();

            var handler = new CreateMessageCommandHandler(
                messageRepositoryMock.Object,
                attachmentRepositoryMock.Object,
                loggerMock.Object,
                validator
                );

            messageRepositoryMock.Setup(x => x.InsertMessage(It.IsAny <Domain.Models.Messages.Message>())).ReturnsAsync(1);

            // ACT
            var response = await handler.Handle(new CreateMessageCommand()
            {
                Message = new Domain.Models.Messages.Message()
                {
                    MessageId = "1"
                }
            }, new CancellationToken());

            // ASSERT
            Assert.Equal(CommandResultTypeEnum.Success, response.Type);
            messageRepositoryMock.Verify(x => x.InsertMessage(It.IsAny <Domain.Models.Messages.Message>()), Times.Once);
            attachmentRepositoryMock.Verify(x => x.InsertAttachment(It.IsAny <Attachment>(), It.IsAny <string>()), Times.Never);
        }
Exemple #2
0
        public async Task Should_fail_with_status_bad_request_when_client_id_is_null_or_empty(string clientId)
        {
            // Arrange
            var command = new CreateMessageCommand("The message", clientId);
            var handler = new CreateMessageCommandHandler(_mockedRepository.Object);

            // Act
            var result = await handler.Handle(command, default);

            // Assert
            Assert.True(result.Failed);
            Assert.IsType <BadRequest>(result.StatusCode);
        }
Exemple #3
0
        public async Task Should_succeed_with_status_created_when_create_is_valid()
        {
            // Arrange
            _mockedRepository.Setup(x => x.UnitOfWork).Returns(_mockedUnitOfWork.Object);
            _mockedUnitOfWork.Setup(x => x.SaveChangesAsync(It.IsAny <CancellationToken>())).ReturnsAsync(1);

            var command = new CreateMessageCommand("New message", Guid.NewGuid().ToString());
            var handler = new CreateMessageCommandHandler(_mockedRepository.Object);

            // Act
            var result = await handler.Handle(command, default);

            // Assert
            Assert.True(result.Succeeded);
            Assert.IsType <Created>(result.StatusCode);
            Assert.Equal(command.Message, result.Value.Message);
            Assert.Equal(command.ClientId, result.Value.ClientId);

            _mockedRepository.Verify(x => x.Add(It.IsAny <BoardMessage>()), Times.Once);
            _mockedUnitOfWork.Verify(x => x.SaveChangesAsync(default), Times.Once);
        public async void Handle_ShouldReturnInvalidRequest_WhenRequestHasNoMessageId()
        {
            // ARRANGE
            var validator                = new CreateMessageCommandValidator();
            var messageRepositoryMock    = new Mock <IMessageRepository>();
            var attachmentRepositoryMock = new Mock <IAttachmentRepository>();
            var loggerMock               = new Mock <ILogger>();

            var handler = new CreateMessageCommandHandler(
                messageRepositoryMock.Object,
                attachmentRepositoryMock.Object,
                loggerMock.Object,
                validator
                );

            // ACT
            var response = await handler.Handle(new CreateMessageCommand()
            {
                Message = new Domain.Models.Messages.Message()
            }, new CancellationToken());

            // ASSERT
            Assert.Equal(CommandResultTypeEnum.InvalidInput, response.Type);
        }