public CustomerController( AddCustomerCommandHandler addCustomerCommandHandler, EditCustomerCommandHandler editCustomerCommandHandler, GetByDocumentCustomerQueryHandler getByDocumentQueryHandler, GetByIdCustomerQueryHandler getByIdCustomerQueryHandler, GetAllCustomerQueryHandler getAllQueryHandler) { _addCustomerCommandHandler = addCustomerCommandHandler; _editCustomerCommandHandler = editCustomerCommandHandler; _getByDocumentCustomerQueryHandler = getByDocumentQueryHandler; _getByIdCustomerQueryHandler = getByIdCustomerQueryHandler; _getAllCustomerQueryHandler = getAllQueryHandler; }
public async Task HandleAsync_Valid() { var customerRepositoryMock = new Mock <ICustomerRepository>(); var mapperMock = new Mock <IMapper>(); var id = Guid.Parse("926a4480-61f5-416a-a16f-5c722d8463f7"); var command = new EditCustomerCommand { Id = id, FirstName = "Mary 2", LastName = "Smith 2", }; var customerId = new CustomerIdentity(id); var referenceNumber = new CustomerReferenceNumber(DateTime.Now, "ABC12"); var customer = new Customer(customerId, referenceNumber, "Mary", "Smith"); var updatedCustomer = new Customer(customerId, referenceNumber, "Mary 2", "Smith 2"); var expectedResponse = new EditCustomerCommandResponse { Id = id, FirstName = "Mary 2", LastName = "Smith 2", }; customerRepositoryMock .Setup(e => e.FindAsync(customerId)) .ReturnsAsync(customer); customerRepositoryMock .Setup(e => e.UpdateAsync(updatedCustomer)); mapperMock .Setup(e => e.Map <Customer, EditCustomerCommandResponse>(updatedCustomer)) .Returns(expectedResponse); var handler = new EditCustomerCommandHandler(customerRepositoryMock.Object, mapperMock.Object); var response = await handler.HandleAsync(command); customerRepositoryMock.Verify(e => e.FindAsync(customerId), Times.Once()); customerRepositoryMock.Verify(e => e.UpdateAsync(updatedCustomer), Times.Once()); mapperMock.Verify(e => e.Map <Customer, EditCustomerCommandResponse>(customer), Times.Once()); response.Should().BeEquivalentTo(expectedResponse); }