From 28425f2f6ecee736d64cf6a45a74dc4f4992edbd Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Thu, 12 Feb 2015 14:27:41 -0800 Subject: - Update for production URL - Use username/password for auth like other B:OP modules - Fix tests - Remove extraneous extra/ stuff in repo --- t/00-load.t | 10 ++++++++ t/boilerplate.t | 49 ++++++++++++++++++++++++++++++++++++ t/lib/test_account.pl | 9 +++---- t/manifest.t | 13 ++++++++++ t/pod-coverage.t | 18 +++++++++++++ t/pod.t | 12 +++++++++ t/t_00-load.t | 10 -------- t/t_boilerplate.t | 49 ------------------------------------ t/t_manifest.t | 13 ---------- t/t_pod-coverage.t | 18 ------------- t/t_pod.t | 12 --------- t/t_transaction.t | 64 ----------------------------------------------- t/t_transaction_decline.t | 46 ---------------------------------- t/transaction.t | 64 +++++++++++++++++++++++++++++++++++++++++++++++ t/transaction_decline.t | 47 ++++++++++++++++++++++++++++++++++ 15 files changed, 216 insertions(+), 218 deletions(-) create mode 100644 t/00-load.t create mode 100644 t/boilerplate.t create mode 100644 t/manifest.t create mode 100644 t/pod-coverage.t create mode 100644 t/pod.t delete mode 100644 t/t_00-load.t delete mode 100644 t/t_boilerplate.t delete mode 100644 t/t_manifest.t delete mode 100644 t/t_pod-coverage.t delete mode 100644 t/t_pod.t delete mode 100644 t/t_transaction.t delete mode 100644 t/t_transaction_decline.t create mode 100644 t/transaction.t create mode 100644 t/transaction_decline.t (limited to 't') diff --git a/t/00-load.t b/t/00-load.t new file mode 100644 index 0000000..a79fa22 --- /dev/null +++ b/t/00-load.t @@ -0,0 +1,10 @@ +#!perl -T + +use Test::More tests => 1; + +BEGIN { + use_ok( 'Business::OnlinePayment::vSecureProcessing' ) || print "Bail out! +"; +} + +diag( "Testing Business::OnlinePayment::vSecureProcessing $Business::OnlinePayment::vSecureProcessing::VERSION, Perl $], $^X" ); diff --git a/t/boilerplate.t b/t/boilerplate.t new file mode 100644 index 0000000..50696af --- /dev/null +++ b/t/boilerplate.t @@ -0,0 +1,49 @@ +#!perl -T + +use strict; +use warnings; +use Test::More tests => 3; + +sub not_in_file_ok { + my ($filename, %regex) = @_; + open( my $fh, '<', $filename ) + or die "couldn't open $filename for reading: $!"; + + my %violated; + + while (my $line = <$fh>) { + while (my ($desc, $regex) = each %regex) { + if ($line =~ $regex) { + push @{$violated{$desc}||=[]}, $.; + } + } + } + + if (%violated) { + fail("$filename contains boilerplate text"); + diag "$_ appears on lines @{$violated{$_}}" for keys %violated; + } else { + pass("$filename contains no boilerplate text"); + } +} + +sub module_boilerplate_ok { + my ($module) = @_; + not_in_file_ok($module => + 'the great new $MODULENAME' => qr/ - The great new /, + 'boilerplate description' => qr/Quick summary of what the module/, + 'stub function definition' => qr/function[12]/, + ); +} + + not_in_file_ok(README => + "The README is used..." => qr/The README is used/, + "'version information here'" => qr/to provide version information/, + ); + + not_in_file_ok(Changes => + "placeholder date/time" => qr(Date/time) + ); + + module_boilerplate_ok('lib/Business/OnlinePayment/vSecureProcessing.pm'); + diff --git a/t/lib/test_account.pl b/t/lib/test_account.pl index 69f8c89..7b10473 100644 --- a/t/lib/test_account.pl +++ b/t/lib/test_account.pl @@ -2,14 +2,11 @@ sub test_account { # fill all these fields in to test out transactions my %opts = ( - server =>'', # be sure to leave out the 'https://' + login => '', #userid + password => '', #gid platform => '', - gid => '', - tid => '', - userid=> 'name@server.com', - port => 443, - env => 'test', appid => '' + #tid => '', ); return %opts; diff --git a/t/manifest.t b/t/manifest.t new file mode 100644 index 0000000..45eb83f --- /dev/null +++ b/t/manifest.t @@ -0,0 +1,13 @@ +#!perl -T + +use strict; +use warnings; +use Test::More; + +unless ( $ENV{RELEASE_TESTING} ) { + plan( skip_all => "Author tests not required for installation" ); +} + +eval "use Test::CheckManifest 0.9"; +plan skip_all => "Test::CheckManifest 0.9 required" if $@; +ok_manifest(); diff --git a/t/pod-coverage.t b/t/pod-coverage.t new file mode 100644 index 0000000..c021dd4 --- /dev/null +++ b/t/pod-coverage.t @@ -0,0 +1,18 @@ +use strict; +use warnings; +use Test::More skip_all => "don't care about POD coverage right now"; + +# Ensure a recent version of Test::Pod::Coverage +my $min_tpc = 1.08; +eval "use Test::Pod::Coverage $min_tpc"; +plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage" + if $@; + +# Test::Pod::Coverage doesn't require a minimum Pod::Coverage version, +# but older versions don't recognize some common documentation styles +my $min_pc = 0.18; +eval "use Pod::Coverage $min_pc"; +plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage" + if $@; + +all_pod_coverage_ok(); diff --git a/t/pod.t b/t/pod.t new file mode 100644 index 0000000..ee8b18a --- /dev/null +++ b/t/pod.t @@ -0,0 +1,12 @@ +#!perl -T + +use strict; +use warnings; +use Test::More; + +# Ensure a recent version of Test::Pod +my $min_tp = 1.22; +eval "use Test::Pod $min_tp"; +plan skip_all => "Test::Pod $min_tp required for testing POD" if $@; + +all_pod_files_ok(); diff --git a/t/t_00-load.t b/t/t_00-load.t deleted file mode 100644 index a79fa22..0000000 --- a/t/t_00-load.t +++ /dev/null @@ -1,10 +0,0 @@ -#!perl -T - -use Test::More tests => 1; - -BEGIN { - use_ok( 'Business::OnlinePayment::vSecureProcessing' ) || print "Bail out! -"; -} - -diag( "Testing Business::OnlinePayment::vSecureProcessing $Business::OnlinePayment::vSecureProcessing::VERSION, Perl $], $^X" ); diff --git a/t/t_boilerplate.t b/t/t_boilerplate.t deleted file mode 100644 index 50696af..0000000 --- a/t/t_boilerplate.t +++ /dev/null @@ -1,49 +0,0 @@ -#!perl -T - -use strict; -use warnings; -use Test::More tests => 3; - -sub not_in_file_ok { - my ($filename, %regex) = @_; - open( my $fh, '<', $filename ) - or die "couldn't open $filename for reading: $!"; - - my %violated; - - while (my $line = <$fh>) { - while (my ($desc, $regex) = each %regex) { - if ($line =~ $regex) { - push @{$violated{$desc}||=[]}, $.; - } - } - } - - if (%violated) { - fail("$filename contains boilerplate text"); - diag "$_ appears on lines @{$violated{$_}}" for keys %violated; - } else { - pass("$filename contains no boilerplate text"); - } -} - -sub module_boilerplate_ok { - my ($module) = @_; - not_in_file_ok($module => - 'the great new $MODULENAME' => qr/ - The great new /, - 'boilerplate description' => qr/Quick summary of what the module/, - 'stub function definition' => qr/function[12]/, - ); -} - - not_in_file_ok(README => - "The README is used..." => qr/The README is used/, - "'version information here'" => qr/to provide version information/, - ); - - not_in_file_ok(Changes => - "placeholder date/time" => qr(Date/time) - ); - - module_boilerplate_ok('lib/Business/OnlinePayment/vSecureProcessing.pm'); - diff --git a/t/t_manifest.t b/t/t_manifest.t deleted file mode 100644 index 45eb83f..0000000 --- a/t/t_manifest.t +++ /dev/null @@ -1,13 +0,0 @@ -#!perl -T - -use strict; -use warnings; -use Test::More; - -unless ( $ENV{RELEASE_TESTING} ) { - plan( skip_all => "Author tests not required for installation" ); -} - -eval "use Test::CheckManifest 0.9"; -plan skip_all => "Test::CheckManifest 0.9 required" if $@; -ok_manifest(); diff --git a/t/t_pod-coverage.t b/t/t_pod-coverage.t deleted file mode 100644 index c021dd4..0000000 --- a/t/t_pod-coverage.t +++ /dev/null @@ -1,18 +0,0 @@ -use strict; -use warnings; -use Test::More skip_all => "don't care about POD coverage right now"; - -# Ensure a recent version of Test::Pod::Coverage -my $min_tpc = 1.08; -eval "use Test::Pod::Coverage $min_tpc"; -plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage" - if $@; - -# Test::Pod::Coverage doesn't require a minimum Pod::Coverage version, -# but older versions don't recognize some common documentation styles -my $min_pc = 0.18; -eval "use Pod::Coverage $min_pc"; -plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage" - if $@; - -all_pod_coverage_ok(); diff --git a/t/t_pod.t b/t/t_pod.t deleted file mode 100644 index ee8b18a..0000000 --- a/t/t_pod.t +++ /dev/null @@ -1,12 +0,0 @@ -#!perl -T - -use strict; -use warnings; -use Test::More; - -# Ensure a recent version of Test::Pod -my $min_tp = 1.22; -eval "use Test::Pod $min_tp"; -plan skip_all => "Test::Pod $min_tp required for testing POD" if $@; - -all_pod_files_ok(); diff --git a/t/t_transaction.t b/t/t_transaction.t deleted file mode 100644 index 897e6f7..0000000 --- a/t/t_transaction.t +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use POSIX qw(strftime); -use Test::More; -use Business::OnlinePayment; -require "t/lib/test_account.pl"; - -my %opts = test_account('card'); - -if (!$opts{'gid'} || !$opts{'appid'}) { - plan skip_all => "no test credentials provided; fill out t/lib/test_account.pl to test communication with the gateway.", - 1; - exit(0); -} - -plan tests => 2; - -### -# Purchase -### -my %content = ( - appid => $opts{'appid'}, - action => 'Normal Authorization', - description => 'Business::OnlinePayment visa test', - card_number => '4111111111111111', - cvv2 => '111', - expiration => expiration_date(), - amount => '24.42', - name => 'Murphy Law', - email => 'fake@acme.com', - address => '123 Anystreet', - zip => '84058', -); - -my $tx = new Business::OnlinePayment( 'vSecureProcessing', \%opts ); - -$tx->content( %content, - action => 'Normal Authorization' ); - -$tx->test_transaction(1); - -$tx->submit; - -is( $tx->is_success, 1, 'purchase' ) - or diag('Gateway error: '. $tx->error_message); - -### -# Refund -### -my $auth = $tx->authorization; -$tx = new Business::OnlinePayment( 'vSecureProcessing' ); -$tx->content( %content, - action => 'Credit', - authorization => $auth ); -$tx->test_transaction(1); - -$tx->submit; - -is( $tx->is_success, 1, 'refund' ) - or diag('Gateway error: '. $tx->error_message); - -1; diff --git a/t/t_transaction_decline.t b/t/t_transaction_decline.t deleted file mode 100644 index 2e15eb2..0000000 --- a/t/t_transaction_decline.t +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use POSIX qw(strftime); -use Test::More; -use Business::OnlinePayment; -require "t/lib/test_account.pl"; - -my %opts = test_account('card'); - -if (!$opts{'gid'} || !$opts{'appid'}) { - plan skip_all => "no test credentials provided; fill out t/lib/test_account.pl to test communication with the gateway.", - 1; - exit(0); -} - -plan tests => 2; -my %content = ( - appid => $opts{'appid'}, - action => 'Normal Authorization', - description => 'Business::OnlinePayment visa test', - card_number => '4111111111111112', # trigger failure - cvv2 => '111', - expiration => expiration_date(), - amount => '24.42', - name => 'Murphy Law', - email => 'fake@acme.com', - address => '123 Anystreet', - zip => '84058', -); - -my $tx = new Business::OnlinePayment( 'vSecureProcessing', \%opts ); - -$tx->content( %content ); - -$tx->test_transaction(1); - -$tx->submit; - -is( $tx->is_success, 0, 'declined purchase') - or diag('Test transaction should have failed, but succeeded'); -is( $tx->failure_status, 'nsf', 'failure status' ) - or diag('Failure status reported as '.$tx->failure_status); - -1; diff --git a/t/transaction.t b/t/transaction.t new file mode 100644 index 0000000..087bd02 --- /dev/null +++ b/t/transaction.t @@ -0,0 +1,64 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use POSIX qw(strftime); +use Test::More; +use Business::OnlinePayment; +require "t/lib/test_account.pl"; + +my %opts = test_account('card'); + +if (!$opts{'login'} || !$opts{'password'}) { + plan skip_all => "no test credentials provided; fill out t/lib/test_account.pl to test communication with the gateway.", + 1; + exit(0); +} + +plan tests => 2; + +### +# Purchase +### +my %content = ( + login => delete($opts{'login'}), + password => delete($opts{'password'}), + action => 'Normal Authorization', + description => 'Business::OnlinePayment visa test', + card_number => '4111111111111111', + cvv2 => '111', + expiration => expiration_date(), + amount => '24.42', + name => 'Murphy Law', + email => 'fake@acme.com', + address => '123 Anystreet', + zip => '84058', +); + +my $tx = new Business::OnlinePayment( 'vSecureProcessing', %opts ); + +$tx->content( %content ); + +$tx->test_transaction(1); + +$tx->submit; + +is( $tx->is_success, 1, 'purchase' ) + or diag('Gateway error: '. $tx->error_message); + +### +# Refund +### +my $auth = $tx->authorization; +$tx = new Business::OnlinePayment( 'vSecureProcessing', %opts ); +$tx->content( %content, + action => 'Credit', + authorization => $auth ); +$tx->test_transaction(1); + +$tx->submit; + +is( $tx->is_success, 1, 'refund' ) + or diag('Gateway error: '. $tx->error_message); + +1; diff --git a/t/transaction_decline.t b/t/transaction_decline.t new file mode 100644 index 0000000..5f85874 --- /dev/null +++ b/t/transaction_decline.t @@ -0,0 +1,47 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use POSIX qw(strftime); +use Test::More; +use Business::OnlinePayment; +require "t/lib/test_account.pl"; + +my %opts = test_account('card'); + +if (!$opts{'login'} || !$opts{'password'}) { + plan skip_all => "no test credentials provided; fill out t/lib/test_account.pl to test communication with the gateway.", + 1; + exit(0); +} + +plan tests => 1; #2; +my %content = ( + login => delete $opts{'login'}, + password => delete $opts{'password'}, + action => 'Normal Authorization', + description => 'Business::OnlinePayment visa test', + card_number => '4111111111111112', # trigger failure + cvv2 => '111', + expiration => expiration_date(), + amount => '24.42', + name => 'Murphy Law', + email => 'fake@acme.com', + address => '123 Anystreet', + zip => '84058', +); + +my $tx = new Business::OnlinePayment( 'vSecureProcessing', %opts ); + +$tx->content( %content ); + +$tx->test_transaction(1); + +$tx->submit; + +is( $tx->is_success, 0, 'declined purchase') + or diag('Test transaction should have failed, but succeeded'); +#is( $tx->failure_status, 'nsf', 'failure status' ) +# or diag('Failure status reported as '.$tx->failure_status); + +1; -- cgit v1.2.1