public void Find_RaisesNotFoundErrorWhenTokenDoesntExist()
        {
            UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway);
            string nonce = TestHelper.GenerateInvalidUsBankAccountNonce();

            Assert.Throws <NotFoundException>(() => usBankAccountGateway.Find(nonce));
        }
        public void Find_FindsUsBankAccountWithToken()
        {
            Result <Customer> result = gateway.Customer.Create(new CustomerRequest());

            Assert.IsTrue(result.IsSuccess());

            string nonce   = TestHelper.GenerateValidUsBankAccountNonce(gateway);
            var    request = new PaymentMethodRequest
            {
                CustomerId         = result.Target.Id,
                PaymentMethodNonce = nonce
            };
            Result <PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request);

            Assert.IsTrue(paymentMethodResult.IsSuccess());

            Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target);
            UsBankAccount usbankAccount = (UsBankAccount)paymentMethodResult.Target;

            UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway);

            usbankAccount = usBankAccountGateway.Find(usbankAccount.Token);

            Assert.AreEqual("123456789", usbankAccount.RoutingNumber);
            Assert.AreEqual("1234", usbankAccount.Last4);
            Assert.AreEqual("checking", usbankAccount.AccountType);
            Assert.AreEqual("PayPal Checking - 1234", usbankAccount.AccountDescription);
            Assert.AreEqual("Dan Schulman", usbankAccount.AccountHolderName);
        }
        public void Find_FindsUsBankAccountWithToken()
        {
            Result <Customer> result = gateway.Customer.Create(new CustomerRequest());

            Assert.IsTrue(result.IsSuccess());

            string nonce   = TestHelper.GenerateValidUsBankAccountNonce(gateway);
            var    request = new PaymentMethodRequest
            {
                CustomerId         = result.Target.Id,
                PaymentMethodNonce = nonce
            };
            Result <PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request);

            Assert.IsTrue(paymentMethodResult.IsSuccess());

            Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target);
            UsBankAccount usBankAccount = (UsBankAccount)paymentMethodResult.Target;

            UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway);

            usBankAccount = usBankAccountGateway.Find(usBankAccount.Token);

            Assert.AreEqual("021000021", usBankAccount.RoutingNumber);
            Assert.AreEqual("1234", usBankAccount.Last4);
            Assert.AreEqual("checking", usBankAccount.AccountType);
            Assert.AreEqual("Dan Schulman", usBankAccount.AccountHolderName);
            Assert.IsTrue(Regex.IsMatch(usBankAccount.BankName, ".*CHASE.*"));
            AchMandate achMandate = usBankAccount.AchMandate;

            Assert.AreEqual("cl mandate text", achMandate.Text);
            Assert.AreEqual("DateTime", achMandate.AcceptedAt.GetType().Name);
            Assert.IsTrue(usBankAccount.IsDefault);
        }
        public void Find_FindsUsBankAccountWithToken()
        {
            Result<Customer> result = gateway.Customer.Create(new CustomerRequest());
            Assert.IsTrue(result.IsSuccess());

            string nonce = TestHelper.GenerateValidUsBankAccountNonce(gateway);
            var request = new PaymentMethodRequest
            {
                CustomerId = result.Target.Id,
                PaymentMethodNonce = nonce
            };
            Result<PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request);
            Assert.IsTrue(paymentMethodResult.IsSuccess());

            Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target);
            UsBankAccount usBankAccount = (UsBankAccount) paymentMethodResult.Target;

            UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway);
            usBankAccount = usBankAccountGateway.Find(usBankAccount.Token);

            Assert.AreEqual("021000021", usBankAccount.RoutingNumber);
            Assert.AreEqual("1234", usBankAccount.Last4);
            Assert.AreEqual("checking", usBankAccount.AccountType);
            Assert.AreEqual("PayPal Checking - 1234", usBankAccount.AccountDescription);
            Assert.AreEqual("Dan Schulman", usBankAccount.AccountHolderName);
            Assert.IsTrue(Regex.IsMatch(usBankAccount.BankName, ".*CHASE.*"));
        }
 public void Find_RaisesNotFoundErrorWhenTokenDoesntExist()
 {
     UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway);
     string nonce = TestHelper.GenerateInvalidUsBankAccountNonce();
     Assert.Throws<NotFoundException>(() => usBankAccountGateway.Find(nonce));
 }