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); }
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); }
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); }