X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=t%2Fbop.t;h=7eb793f9ceb72e99db1c933f6bdccc5ef759d93c;hb=ad5a6c677db7181d4323f1662bada97e36d23edf;hp=c3d7769e87be09f933b9a6640a8387c632b55034;hpb=857313b96b87e3fbb2ca6e472f5283462b928730;p=Business-OnlinePayment.git diff --git a/t/bop.t b/t/bop.t index c3d7769..7eb793f 100644 --- a/t/bop.t +++ b/t/bop.t @@ -1,13 +1,13 @@ #!/usr/bin/perl -# $Id: bop.t,v 1.3 2006-08-30 18:48:40 plobbes Exp $ +# $Id: bop.t,v 1.6 2006-08-31 19:49:55 plobbes Exp $ use strict; use warnings; -use Test::More tests => 49; +use Test::More tests => 54; BEGIN { use_ok("Business::OnlinePayment") or exit; } -{ # fake test driver 1 +{ # fake test driver 1 (no submit method) package Business::OnlinePayment::MOCK1; use strict; @@ -15,11 +15,23 @@ BEGIN { use_ok("Business::OnlinePayment") or exit; } use base qw(Business::OnlinePayment); } +{ # fake test driver 2 (with submit method) + + package Business::OnlinePayment::MOCK2; + use strict; + use warnings; + use base qw(Business::OnlinePayment); + sub submit { die("in processor submit\n"); } +} + my $package = "Business::OnlinePayment"; -my $driver = "MOCK1"; +my @drivers = qw(MOCK1 MOCK2); +my $driver = $drivers[0]; # trick to make use() happy (called in Business::OnlinePayment->new) -$INC{"Business/OnlinePayment/${driver}.pm"} = "testing"; +foreach my $drv (@drivers) { + $INC{"Business/OnlinePayment/${drv}.pm"} = "testing"; +} { # new can_ok( $package, qw(new) ); @@ -148,14 +160,16 @@ $INC{"Business/OnlinePayment/${driver}.pm"} = "testing"; can_ok( $package, qw(submit) ); can_ok( $obj, qw(submit) ); - # XXX - # eval { $obj->submit; }; - # like( $@, qr/^Processor subclass did not /, "missing submit() croaks" ); - #Tests turned off due to bug: - # Deep recursion on anonymous subroutine - # at .../Business/OnlinePayment.pm line 110. - # Deep recursion on subroutine "Business::OnlinePayment::_pre_submit" - # at .../Business/OnlinePayment.pm line 74. + eval { $obj->submit; }; + like( $@, qr/^Processor subclass did not /, "missing submit() croaks" ); + is( $obj->can("submit"), $package->can("submit"), "submit unchanged" ); + + my $mock2 = $package->new("MOCK2"); + can_ok( $mock2, qw(submit) ); + + isnt( $mock2->can("submit"), $package->can("submit"), "submit changed" ); + eval { $mock2->submit; }; + like( $@, qr/^in processor submit/, "processor submit() is called" ); } { # dump_contents