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