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("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("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("PayPal Checking - 1234", usBankAccount.AccountDescription); Assert.AreEqual("Dan Schulman", usBankAccount.AccountHolderName); Assert.IsTrue(Regex.IsMatch(usBankAccount.BankName, ".*CHASE.*")); }
public void Sale_TransactUsBankAccountWithToken() { 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, Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID } }; Result <PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request); Assert.IsTrue(paymentMethodResult.IsSuccess()); Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target); UsBankAccount usBankAccount = (UsBankAccount)paymentMethodResult.Target; Assert.IsTrue(usBankAccount.IsVerified); Assert.AreEqual(1, usBankAccount.Verifications.Count); var transactionRequest = new TransactionRequest { Amount = SandboxValues.TransactionAmount.AUTHORIZE, MerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID }; UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway); Result <Transaction> transactionResult = usBankAccountGateway.Sale(usBankAccount.Token, transactionRequest); Assert.IsTrue(transactionResult.IsSuccess()); Transaction transaction = transactionResult.Target; Assert.AreEqual(TransactionStatus.SETTLEMENT_PENDING, transaction.Status); UsBankAccountDetails usBankAccountDetails = transaction.UsBankAccountDetails; Assert.AreEqual(usBankAccount.RoutingNumber, usBankAccountDetails.RoutingNumber); Assert.AreEqual(usBankAccount.Last4, usBankAccountDetails.Last4); Assert.AreEqual(usBankAccount.AccountType, usBankAccountDetails.AccountType); Assert.AreEqual(usBankAccount.AccountHolderName, usBankAccountDetails.AccountHolderName); AchMandate achMandate = usBankAccountDetails.AchMandate; Assert.AreEqual(usBankAccount.AchMandate.Text, achMandate.Text); Assert.AreEqual("DateTime", achMandate.AcceptedAt.GetType().Name); }
public void CompliantMerchant_FailsToTransactUnverifiedToken() { gateway = new BraintreeGateway { Environment = Environment.DEVELOPMENT, MerchantId = "integration2_merchant_id", PublicKey = "integration2_public_key", PrivateKey = "integration2_private_key" }; Result <Customer> customerResult = gateway.Customer.Create(new CustomerRequest()); Assert.IsTrue(customerResult.IsSuccess()); string nonce = TestHelper.GenerateValidUsBankAccountNonce(gateway); var request = new PaymentMethodRequest { CustomerId = customerResult.Target.Id, PaymentMethodNonce = nonce, Options = new PaymentMethodOptionsRequest { VerificationMerchantAccountId = "another_us_bank_merchant_account" } }; Result <PaymentMethod> paymentMethodResult = gateway.PaymentMethod.Create(request); Assert.IsTrue(paymentMethodResult.IsSuccess()); Assert.IsInstanceOf(typeof(UsBankAccount), paymentMethodResult.Target); UsBankAccount usBankAccount = (UsBankAccount)paymentMethodResult.Target; Assert.IsFalse(usBankAccount.IsVerified); Assert.AreEqual(0, usBankAccount.Verifications.Count); var transactionRequest = new TransactionRequest { Amount = SandboxValues.TransactionAmount.AUTHORIZE, MerchantAccountId = "another_us_bank_merchant_account" }; UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway); Result <Transaction> transactionResult = usBankAccountGateway.Sale(usBankAccount.Token, transactionRequest); Assert.IsFalse(transactionResult.IsSuccess()); Assert.AreEqual( ValidationErrorCode.TRANSACTION_US_BANK_ACCOUNT_MUST_BE_VERIFIED, transactionResult.Errors.ForObject("transaction").OnField("payment-method-token")[0].Code); }
public void Sale_TransactUsBankAccountWithToken() { 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; var transactionRequest = new TransactionRequest { Amount = SandboxValues.TransactionAmount.AUTHORIZE, MerchantAccountId = MerchantAccountIDs.US_BANK_MERCHANT_ACCOUNT_ID }; UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway); Result<Transaction> transactionResult = usBankAccountGateway.Sale(usBankAccount.Token, transactionRequest); Assert.IsTrue(transactionResult.IsSuccess()); Transaction transaction = transactionResult.Target; Assert.AreEqual(TransactionStatus.SETTLEMENT_PENDING, transaction.Status); UsBankAccountDetails usBankAccountDetails = transaction.UsBankAccountDetails; Assert.AreEqual(usBankAccount.RoutingNumber, usBankAccountDetails.RoutingNumber); Assert.AreEqual(usBankAccount.Last4, usBankAccountDetails.Last4); Assert.AreEqual(usBankAccount.AccountType, usBankAccountDetails.AccountType); Assert.AreEqual(usBankAccount.AccountDescription, usBankAccountDetails.AccountDescription); Assert.AreEqual(usBankAccount.AccountHolderName, usBankAccountDetails.AccountHolderName); }
public void Find_RaisesNotFoundErrorWhenTokenDoesntExist() { UsBankAccountGateway usBankAccountGateway = new UsBankAccountGateway(gateway); string nonce = TestHelper.GenerateInvalidUsBankAccountNonce(); Assert.Throws<NotFoundException>(() => usBankAccountGateway.Find(nonce)); }