public async Task TestDisableAsync()
        {
            var client         = base.CreateMockTestClientNullRequiredFieldsRequest("Mocks/recurring/disable-success.json");
            var recurring      = new Service.Recurring(client);
            var disableRequest = this.CreateDisableRequest();
            var disableResult  = await recurring.DisableAsync(disableRequest);

            Assert.AreEqual("[detail-successfully-disabled]", disableResult.Response);
        }
        public void TestDisable()
        {
            var client         = base.CreateMockTestClientNullRequiredFieldsRequest("Mocks/recurring/disable-success.json");
            var recurring      = new Service.Recurring(client);
            var disableRequest = this.CreateDisableRequest();
            var disableResult  = recurring.Disable(disableRequest);

            Assert.AreEqual(1L, (long)disableResult.Details.Count);
            Assert.AreEqual("[detail-successfully-disabled]", disableResult.Response);
        }
        public async Task TestListRecurringDetailsAsync()
        {
            var client    = base.CreateMockTestClientNullRequiredFieldsRequest("Mocks/recurring/listRecurringDetails-success.json");
            var recurring = new Service.Recurring(client);
            var recurringDetailsRequest = this.CreateRecurringDetailsRequest();
            var recurringDetailsResult  = await recurring.ListRecurringDetailsAsync(recurringDetailsRequest);

            Assert.AreEqual(1L, (long)recurringDetailsResult.Details.Count);
            var recurringDetail = recurringDetailsResult.Details[0].RecurringDetail;

            Assert.AreEqual("recurringReference", recurringDetail.RecurringDetailReference);
            Assert.AreEqual("cardAlias", recurringDetail.Alias);
            Assert.AreEqual("1111", recurringDetail.Card.Number);
        }
        public void TestListRecurringDetails()
        {
            var client    = base.CreateMockTestClientRecurringRequest("Mocks/recurring/listRecurringDetails-success.json");
            var recurring = new Service.Recurring(client);
            var recurringDetailsRequest = this.CreateRecurringDetailsRequest();
            var recurringDetailsResult  = recurring.ListRecurringDetails(recurringDetailsRequest);

            Assert.AreEqual(1L, (long)recurringDetailsResult.Details.Count);
            var recurringDetail = recurringDetailsResult.Details.FirstOrDefault().RecurringDetail;

            Assert.AreEqual("recurringReference", recurringDetail.RecurringDetailReference);
            Assert.AreEqual("cardAlias", recurringDetail.Alias);
            Assert.AreEqual("1111", recurringDetail.Card.Number);
        }
        public void NotifyShopperTest()
        {
            Client client                = base.CreateMockTestClientNullRequiredFieldsRequest("Mocks/recurring/notifyShopper-success.json");
            var    recurring             = new Service.Recurring(client);
            NotifyShopperRequest request = CreateNotifyShopperRequest();
            NotifyShopperResult  result  = recurring.NotifyShopper(request);

            Assert.IsNotNull(result);
            Assert.AreEqual("Example displayed reference", result.DisplayedReference);
            Assert.AreEqual("8516167336214570", result.PspReference);
            Assert.AreEqual("Request processed successfully", result.Message);
            Assert.AreEqual("Example reference", result.Reference);
            Assert.AreEqual("Success", result.ResultCode);
            Assert.AreEqual("IA0F7500002462", result.ShopperNotificationReference);
        }
        public void TestDisable803()
        {
            try
            {
                var client         = base.CreateMockTestClientForErrors(422, "Mocks/recurring/disable-error-803.json");
                var recurring      = new Service.Recurring(client);
                var disableRequest = this.CreateDisableRequest();

                var disableResult = recurring.Disable(disableRequest);
                Assert.Fail("Exception expected!");
            }
            catch (Exception exception)
            {
                Assert.AreNotEqual(200, exception);
            }
        }