Пример #1
0
        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);
        }
Пример #3
0
        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);
    }
Пример #6
0
        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);
        }