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);
        }