public async Task GivenADealsRequest_WhenGetDealsIsCalled_ThenGetAsyncIsCalledWithEndpoint()
        {
            var apiKey = "abc";

            var dealsRequest = new DealsRequest
            {
                FinanceId = "someid",
                Amount    = 123m,
                Deposit   = 10m,
                Country   = "GB"
            };

            var expectedEndpoint = $"v1/dealcalculator?merchant={apiKey}&amount={dealsRequest.Amount}&deposit={dealsRequest.Deposit}&country=GB&finance={dealsRequest.FinanceId}";

            var apiClient = new Mock <IApiClient>();

            apiClient.Setup(x =>
                            x.GetAsync <DealsResponse>(
                                It.IsAny <string>(),
                                It.IsAny <CancellationToken>())).ReturnsAsync(new DealsResponse());

            var dividoApiHttpClient = new DividoApiClient(apiClient.Object, apiKey);

            await dividoApiHttpClient.GetDeals(dealsRequest, CancellationToken.None);

            apiClient.Verify(x =>
                             x.GetAsync <DealsResponse>(
                                 expectedEndpoint,
                                 CancellationToken.None), Times.Once);
        }
示例#2
0
        public async Task <DealsResponse> GetDeals(DealsRequest dealsRequest, CancellationToken token)
        {
            var endpoint = $"v1/dealcalculator?merchant={_apiKey}&amount={dealsRequest.Amount}&deposit={dealsRequest.Deposit}&country={dealsRequest.Country}&finance={dealsRequest.FinanceId}";

            return(await _apiClient.GetAsync <DealsResponse>(
                       endpoint,
                       token));
        }
示例#3
0
        public DealsResponse Get(DealsRequest dealReq)
        {
            Deals dealBL = new Deals();

            return(new DealsResponse
            {
                Deals = dealBL.GetAllDeals()
            });
        }