public async Task ProcessCreditCardSale_EmptyRequest()
        {
            var client  = new EvalonVirtualMerchant(_baseUrl);
            var request = new CreditCardSaleRequest();

            var response = await client.ProcessCreditCardSale(request);

            response.Should().NotBeNull();
            response.ErrorCode.Should().NotBeNullOrEmpty().And.Be("6042");
            response.ErrorName.Should().NotBeNullOrEmpty().And.Be("Invalid Request Format");
            response.ErrorMessage.Should().NotBeNullOrEmpty().And.Be("XML request is not well-formed or request is incomplete.");
        }
        public async Task ProcessCreditCardSale_EmptyRequest()
        {
            var client = new EvalonVirtualMerchant(_baseUrl);
            var request = new CreditCardSaleRequest();

            var response = await client.ProcessCreditCardSale(request);

            response.Should().NotBeNull();
            response.ErrorCode.Should().NotBeNullOrEmpty().And.Be("6042");
            response.ErrorName.Should().NotBeNullOrEmpty().And.Be("Invalid Request Format");
            response.ErrorMessage.Should().NotBeNullOrEmpty().And.Be("XML request is not well-formed or request is incomplete.");
        }
        public async Task ProcessCreditCardSale_InvalidCredentials()
        {
            var client  = new EvalonVirtualMerchant(_baseUrl);
            var request = new CreditCardSaleRequest()
            {
                MerchantId = "Test",
                UserId     = "Test",
                Pin        = "Test"
            };

            var response = await client.ProcessCreditCardSale(request);

            response.Should().NotBeNull();
            response.ErrorCode.Should().NotBeNullOrEmpty().And.Be("4025");
            response.ErrorName.Should().NotBeNullOrEmpty().And.Be("Invalid Credentials");
            response.ErrorMessage.Should().NotBeNullOrEmpty().And.Be("The credentials supplied in the authorization request are invalid.");
        }
        public async Task ProcessCreditCardSale_InvalidCredentials()
        {
            var client = new EvalonVirtualMerchant(_baseUrl);
            var request = new CreditCardSaleRequest()
            {
                MerchantId = "Test",
                UserId = "Test",
                Pin = "Test"
            };

            var response = await client.ProcessCreditCardSale(request);

            response.Should().NotBeNull();
            response.ErrorCode.Should().NotBeNullOrEmpty().And.Be("4025");
            response.ErrorName.Should().NotBeNullOrEmpty().And.Be("Invalid Credentials");
            response.ErrorMessage.Should().NotBeNullOrEmpty().And.Be("The credentials supplied in the authorization request are invalid.");
        }