GivenValidPayerNameAndUserContext_WhenAutocompletePayerInvoked_ThenRepositoryCalledWithCorrectArguments() { var payerName = "test name"; var userId = Guid.NewGuid().ToString(); _mockCurrentUserContext.SetupGet(context => context.UserId).Returns(userId); var service = new PayerPayeeService(_mockCurrentUserContext.Object, _mockRepository.Object); await service.AutocompletePayer(payerName); _mockRepository.Verify(repository => repository.AutocompletePayer(userId, payerName)); }
public async Task GivenRepositoryResponse_WhenAutocompletePayerInvoked_ThenCorrectPayerPayeeEnumerableReturned() { var payerName = "test name"; var userId = Guid.NewGuid().ToString(); _mockCurrentUserContext.SetupGet(context => context.UserId).Returns(userId); var repositoryPayers = new List <PayerPayee> { new() { ExternalId = "externalId1", UserId = "userId", PayerPayeeId = Guid.NewGuid().ToString(), PayerPayeeName = "name1" }, new() { ExternalId = "externalId2", UserId = "userId", PayerPayeeId = Guid.NewGuid().ToString(), PayerPayeeName = "name2" } }; _mockRepository.Setup(repository => repository.AutocompletePayer(userId, payerName)) .ReturnsAsync(() => repositoryPayers); var service = new PayerPayeeService(_mockCurrentUserContext.Object, _mockRepository.Object); var actualPayers = await service.AutocompletePayer(payerName); var expectedPayers = repositoryPayers.Select(payer => new PayerPayeeViewModel { ExternalId = payer.ExternalId, PayerPayeeId = Guid.Parse(payer.PayerPayeeId), PayerPayeeName = payer.PayerPayeeName }); Assert.Equal(expectedPayers, actualPayers); }