public async Task Handle_BankResponseUnknownError_ReturnsBadGateway() { //arrange var transferFundsResponse = TransferFundsResponse.UnknownError(_fixture.Create <int>()); _mockBankApiClient .Setup(x => x.TransferFunds(It.IsAny <TransferFundsRequest>())) .ReturnsAsync(transferFundsResponse); //act var res = await _createPaymentHandler.Handle(_fixture.Create <CreatePaymentRequest>()); //assert res.StatusCode.Should().Be(StatusCodes.Status502BadGateway); }
private async Task <TransferFundsResponse> TransferFundsResponseInternal(TransferFundsRequest request) { var response = await _httpClient.PostAsync( "api/payment", new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json")); var responseBody = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { if (response.StatusCode == (HttpStatusCode)HttpStatusCodeUnprocessableEntity) { return(TransferFundsResponse.Error((int)response.StatusCode, JsonConvert.DeserializeObject <TransferFundsErrorResponse>(responseBody))); } else { return(TransferFundsResponse.UnknownError((int)response.StatusCode)); } } var deserialized = JsonConvert.DeserializeObject <TransferFundsSuccessfulResponse>(responseBody); return(TransferFundsResponse.Successful(deserialized)); }