public async Task GivenRepositoryResponse_WhenGetPayeeInvoked_ThenCorrectPayerPayeeModelReturned() { var name = "name"; var externalId = "externalId"; var payerPayeeId = Guid.NewGuid(); var userId = Guid.NewGuid().ToString(); var expectedPayee = new PayerPayeeViewModel { ExternalId = externalId, PayerPayeeId = payerPayeeId, PayerPayeeName = name }; _mockCurrentUserContext.SetupGet(context => context.UserId).Returns(userId); _mockRepository.Setup(repository => repository.GetPayee(userId, payerPayeeId)) .ReturnsAsync(() => new PayerPayee { ExternalId = externalId, UserId = userId, PayerPayeeId = payerPayeeId.ToString(), PayerPayeeName = name }); var service = new PayerPayeeService(_mockCurrentUserContext.Object, _mockRepository.Object); var actualPayer = await service.GetPayee(payerPayeeId); Assert.Equal(expectedPayee, actualPayer); }
public async Task GivenNoErrors_WhenPostPayeeInvoked_Then200OKReturnedWithCorrectObject() { var name = "test name"; var externalId = "test external id"; var dto = new CreatePayerPayeeDto { Name = name, ExternalId = externalId }; var expectedViewModel = new PayerPayeeViewModel { ExternalId = externalId, PayerPayeeName = name, PayerPayeeId = Guid.NewGuid() }; _mockService.Setup(service => service.CreatePayee(dto)).ReturnsAsync(() => expectedViewModel); var controller = new PayersPayeesController(_mockService.Object); var response = await controller.PostPayee(dto); var objectResponse = Assert.IsType <OkObjectResult>(response); Assert.Equal(StatusCodes.Status200OK, objectResponse.StatusCode); Assert.Equal(expectedViewModel, objectResponse.Value); }
public async Task GivenValidRequest_WhenGetPayeeEndpointCalled_ThenCorrectPayeeReturned() { var payerPayeeId = Guid.NewGuid(); var payee = new PayerPayee { UserId = UserId, PayerPayeeId = $"payee#{payerPayeeId.ToString()}", PayerPayeeName = "payee1", ExternalId = Guid.NewGuid().ToString() }; var expectedPayee = new PayerPayeeViewModel { PayerPayeeId = payerPayeeId, PayerPayeeName = payee.PayerPayeeName, ExternalId = payee.ExternalId }; await _dynamoDbHelper.WriteIntoTable(new List <PayerPayee> { payee }); var response = await _httpClient.GetAsync($"/api/payerspayees/payees/{payerPayeeId.ToString()}"); response.EnsureSuccessStatusCode(); var returnedString = await response.Content.ReadAsStringAsync(); var actualPayer = JsonSerializer.Deserialize <PayerPayeeViewModel>(returnedString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); Assert.Equal(expectedPayee, actualPayer); }
GivenValidPayerPayeeIdAndPayerPayeeServiceReturnsObject_WhenGetPayeeInvoked_ThenReturns200OKWithCorrectPayee() { var expectedPayee = new PayerPayeeViewModel { ExternalId = "externalId", PayerPayeeId = Guid.NewGuid(), PayerPayeeName = "name" }; _mockService.Setup(service => service.GetPayee(It.IsAny <Guid>())).ReturnsAsync(() => expectedPayee); var controller = new PayersPayeesController(_mockService.Object); var response = await controller.GetPayee(Guid.NewGuid()); var objectResponse = Assert.IsType <OkObjectResult>(response); Assert.Equal(StatusCodes.Status200OK, objectResponse.StatusCode); Assert.Equal(expectedPayee, objectResponse.Value); }
GivenValidRequestWithSingleSearchWord_WhenGetAutocompletePayeesEndpointCalled_ThenCorrectPayeesReturned( string searchQuery) { var payee1 = new PayerPayee { UserId = UserId, PayerPayeeId = "payee#9540cf4a-f21b-4cac-9e8b-168d12dcecfb", PayerPayeeName = "payee1", ExternalId = Guid.NewGuid().ToString() }; var payee2 = new PayerPayee { UserId = UserId, PayerPayeeId = "payee#9540cf4a-f21b-4cac-9e8b-168d12dcecfc", PayerPayeeName = "Test2", ExternalId = Guid.NewGuid().ToString() }; var expectedPayee2 = new PayerPayeeViewModel { PayerPayeeId = Guid.Parse("9540cf4a-f21b-4cac-9e8b-168d12dcecfc"), PayerPayeeName = "Test2", ExternalId = payee2.ExternalId }; var initialData = new List <PayerPayee> { new() { UserId = UserId, PayerPayeeId = "payer#9540cf4a-f21b-4cac-9e8b-168d12dcecfd", PayerPayeeName = "payer1", ExternalId = Guid.NewGuid().ToString() }, new() { UserId = UserId, PayerPayeeId = "payer#9540cf4a-f21b-4cac-9e8b-168d12dcecfe", PayerPayeeName = "payer2", ExternalId = Guid.NewGuid().ToString() }, payee1, payee2 }; await _dynamoDbHelper.WriteIntoTable(initialData); var response = await _httpClient.GetAsync($"/api/payerspayees/payees/autocomplete?name={searchQuery}"); response.EnsureSuccessStatusCode(); var returnedString = await response.Content.ReadAsStringAsync(); var returnedPayees = JsonSerializer.Deserialize <List <PayerPayeeViewModel> >(returnedString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); Assert.Equal(new List <PayerPayeeViewModel> { expectedPayee2 }, returnedPayees); }
public async Task GivenValidRequest_WhenGetPayersEndpointCalled_ThenAllCorrectPayersReturned() { var payer1 = new PayerPayee { UserId = UserId, PayerPayeeId = "payer#9540cf4a-f21b-4cac-9e8b-168d12dcecfb", PayerPayeeName = "payer1", ExternalId = Guid.NewGuid().ToString() }; var expectedPayer1 = new PayerPayeeViewModel { PayerPayeeId = Guid.Parse("9540cf4a-f21b-4cac-9e8b-168d12dcecfb"), PayerPayeeName = "payer1", ExternalId = payer1.ExternalId }; var payer2 = new PayerPayee { UserId = UserId, PayerPayeeId = "payer#9540cf4a-f21b-4cac-9e8b-168d12dcecfc", PayerPayeeName = "payer2", ExternalId = Guid.NewGuid().ToString() }; var expectedPayer2 = new PayerPayeeViewModel { PayerPayeeId = Guid.Parse("9540cf4a-f21b-4cac-9e8b-168d12dcecfc"), PayerPayeeName = "payer2", ExternalId = payer2.ExternalId }; var initialData = new List <PayerPayee> { payer1, payer2, new() { UserId = UserId, PayerPayeeId = "payee#a540cf4a-f21b-4cac-9e8b-168d12dcecff", PayerPayeeName = "payee1", ExternalId = Guid.NewGuid().ToString() } }; await _dynamoDbHelper.WriteIntoTable(initialData); var response = await _httpClient.GetAsync($"api/payerspayees/payers"); response.EnsureSuccessStatusCode(); var returnedString = await response.Content.ReadAsStringAsync(); var returnedPayers = JsonSerializer.Deserialize <List <PayerPayeeViewModel> >(returnedString, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); Assert.Equal(new List <PayerPayeeViewModel> { expectedPayer1, expectedPayer2 }, returnedPayers); }