public Sale CreateSale(MerchantAuthentication merchantAuthentication, Sale sale) { var restRequest = new RestRequest(@"sales", Method.POST) { RequestFormat = DataFormat.Json }; AddHeaders(restRequest, merchantAuthentication); restRequest.AddBody(sale); var response = RestClient.Execute<Sale>(restRequest); var saleResponse = response.StatusCode == HttpStatusCode.Created ? JsonConvert.DeserializeObject<Sale>(response.Content) : new Sale { ErrorDataCollection = JsonDeserializer.Deserialize<List<Error>>(response) }; saleResponse.HttpStatus = response.StatusCode; return saleResponse; }
public void GetSale_Send_CreditCardTransaction_Return_Error_Reponse() { var errorResponse = new Sale { Customer = null, HttpStatus = HttpStatusCode.BadRequest, MerchantOrderId = null, Payment = null, ErrorDataCollection = new List<Error>() { new Error { Code = 500, Message = "Internal Server Error" } } }; _mockRestClient.Setup(m => m.Execute<Sale>(It.IsAny<IRestRequest>())).Returns(new RestResponse<Sale>() { StatusCode = HttpStatusCode.BadRequest, Content = new JsonSerializer().Serialize(errorResponse), Data = errorResponse }); var response = _service.Get(Guid.NewGuid(), MerchantAuthenticationHelper.CreateMerchantAuthentication()); response.Should().NotBeNull(); response.MerchantOrderId.Should().BeNullOrEmpty(); response.Customer.Should().BeNull(); response.Payment.Should().BeNull(); response.HttpStatus.Should().Be(HttpStatusCode.BadRequest); response.ErrorDataCollection.Count.Should().BeGreaterThan(0); }