[freeside-commits] branch master updated. 5701cfb8cfe8458f2083957bc13fef15190c201c

Jonathan Prykop jonathan at 420.am
Wed Feb 1 14:32:55 PST 2017


The branch, master has been updated
       via  5701cfb8cfe8458f2083957bc13fef15190c201c (commit)
      from  6ebc654a3f2f82be62b16b5bec62b0dd1862e53e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 5701cfb8cfe8458f2083957bc13fef15190c201c
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Wed Feb 1 16:31:56 2017 -0600

    71513: Card tokenization [American Express tests]

diff --git a/FS/t/suite/13-tokenization.t b/FS/t/suite/13-tokenization.t
index 0a965aa..4b8794b 100755
--- a/FS/t/suite/13-tokenization.t
+++ b/FS/t/suite/13-tokenization.t
@@ -8,11 +8,13 @@ use FS::cust_main;
 use Business::CreditCard qw(generate_last_digit);
 use DateTime;
 if ( stat('/usr/local/etc/freeside/cardfortresstest.txt') ) {
-  plan tests => 18;
+  plan tests => 25;
 } else {
   plan skip_all => 'CardFortress test encryption key is not installed.';
 }
 
+#local $FS::cust_main::Billing_Realtime::DEBUG = 2;
+
 ### can only run on test database (company name "Freeside Test")
 ### will run upgrade, which uses lots of prints & warns beyond regular test output
 
@@ -85,6 +87,32 @@ my $pending_failed = FS::cust_pay_pending->new({
 $err = $pending_failed->insert;
 ok( !$err, "create a failed payment attempt" ) or BAIL_OUT($err);
 
+# create two customers with an AmEx card & paycvv,
+# then run a payment with one, just to generate some test AmEx data
+
+my $amex_cust;
+foreach my $i (0,1) {
+  my $cust_main = $fs->new_customer("AmEx $i");
+  isa_ok ( $cust_main, 'FS::cust_main', "AmEx $i customer" ) or BAIL_OUT('');
+  $err = $cust_main->insert;
+  ok( !$err, "insert AmEx $i customer" ) or BAIL_OUT($err);
+  # add card
+  my $cust_payby;
+  my %card = random_card();
+  $card{'payinfo'} = '347594362484937';
+  $card{'paycvv'}  = '1234';
+  $err = $cust_main->save_cust_payby(
+    %card,
+    payment_payby => $card{'payby'},
+    auto => 1,
+    saved_cust_payby => \$cust_payby
+  );
+  ok( !$err, "save AmEx $i card" ) or BAIL_OUT($err);
+  $amex_cust = $cust_main;
+}
+$err = $amex_cust->realtime_cust_payby( amount => '1.00' );
+ok( !$err, "run AmEx payment" ) or BAIL_OUT($err);
+
 # find two stored credit cards.
 my @cust = map { FS::cust_main->by_key($_) } (10, 12);
 my @payby = map { ($_->cust_payby)[0] } @cust;
diff --git a/FS/t/suite/14-tokenization_refund.t b/FS/t/suite/14-tokenization_refund.t
index 1a0f840..a7d9fa8 100755
--- a/FS/t/suite/14-tokenization_refund.t
+++ b/FS/t/suite/14-tokenization_refund.t
@@ -229,8 +229,10 @@ foreach my $voiding (0,1) {
 exit;
 
 sub random_card {
-  my $payinfo = '4111' . join('', map { int(rand(10)) } 1 .. 11);
-  $payinfo .= generate_last_digit($payinfo);
+#  my $payinfo = '4111' . join('', map { int(rand(10)) } 1 .. 11);
+#  $payinfo .= generate_last_digit($payinfo);
+# Use AmEx for everything, to make sure cardtype gets set correctly
+  my $payinfo = '347594362484937'; #American Express
   my $paydate = DateTime->now
                 ->add('years' => 1)
                 ->truncate(to => 'month')
@@ -239,6 +241,7 @@ sub random_card {
            'payinfo'  => $payinfo,
            'paydate'  => $paydate,
            'payname'  => 'Tokenize Me',
+           'paycvv'   => '1234', #American Express
   );
 }
 

-----------------------------------------------------------------------

Summary of changes:
 FS/t/suite/13-tokenization.t        |   30 +++++++++++++++++++++++++++++-
 FS/t/suite/14-tokenization_refund.t |    7 +++++--
 2 files changed, 34 insertions(+), 3 deletions(-)




More information about the freeside-commits mailing list