X-Git-Url: http://git.freeside.biz/gitweb/?p=Business-OnlinePayment-Bambora.git;a=blobdiff_plain;f=t%2F041-tokenize-card.t;fp=t%2F041-tokenize-card.t;h=f8a129235b9814ecad5054fb3a576389fa4dce53;hp=0000000000000000000000000000000000000000;hb=24c86c6b9136ad878a118d57fc9b876eee3672f8;hpb=775e7c0cd1eea41d5f7d5fa980db865e44162a80 diff --git a/t/041-tokenize-card.t b/t/041-tokenize-card.t new file mode 100755 index 0000000..f8a1292 --- /dev/null +++ b/t/041-tokenize-card.t @@ -0,0 +1,82 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +use lib 't'; +require 'TestFixtures.pm'; +use Business::OnlinePayment; + +my $merchant_id = $ENV{BAMBORA_MERCHANT_ID}; +my $api_key = $ENV{BAMBORA_API_KEY}; + +SKIP: { + skip 'Missing env vars BAMBORA_MERCHANT_ID and BAMBORA_API_KEY', 32 + unless $merchant_id && $api_key; + + my %content = ( + login => $merchant_id, + password => $api_key, + action => 'Tokenize', + amount => '9.99', + + owner => 'Freeside Internet', + name => 'Mitch Jackson', + address => '1407 Graymalkin Lane', + city => 'Vancouver', + state => 'BC', + zip => '111 111', + country => 'CA', + + invoice_number => time(), + card_number => '4030000010001234', + cvv2 => '123', + expiration => '1122', + phone => '251-300-1300', + email => 'mitch@freeside.biz', + ); + + my $tr; + ok( $tr = Business::OnlinePayment->new('Bambora'), 'Instantiatiate $tr' ); + ok( $tr->content( %content ), 'Set transaction content onto $tr' ); + { + local $@; + eval { $tr->submit }; + ok( !$@, "Submit request to create Payment Profile (tokenize)" ); + } + + my $response; + + my %expect = ( + code => 1, + message => 'Operation Successful', + ); + my @expect = qw( + customer_code + ); + + ok( $response = $tr->response_decoded, 'response_decoded' ); + + for my $k ( keys %expect ) { + ok( + $response->{$k} eq $expect{$k}, + sprintf '$tr->%s == %s', $k, $expect{$k} + ); + } + + for my $k ( @expect ) { + ok( + defined $response->{$k}, + sprintf '$r->%s (%s)', + $k, $response->{$k} + ); + } + + ok( + $response->{customer_code} eq $tr->card_token, + '$tr->card_token eq $response->{customer_code}' + ); + +} + +done_testing; \ No newline at end of file