From ad5a6c677db7181d4323f1662bada97e36d23edf Mon Sep 17 00:00:00 2001 From: plobbes Date: Thu, 31 Aug 2006 19:49:55 +0000 Subject: [PATCH] - Add a second test driver (this one has a submit method) - update submit() test cases --- t/bop.t | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/t/bop.t b/t/bop.t index db12334..7eb793f 100644 --- a/t/bop.t +++ b/t/bop.t @@ -1,26 +1,37 @@ #!/usr/bin/perl -# $Id: bop.t,v 1.5 2006-08-31 15:08:16 lawrence Exp $ +# $Id: bop.t,v 1.6 2006-08-31 19:49:55 plobbes Exp $ use strict; use warnings; -use Test::More tests => 50; +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; use warnings; 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) ); @@ -149,9 +160,16 @@ $INC{"Business/OnlinePayment/${driver}.pm"} = "testing"; can_ok( $package, qw(submit) ); can_ok( $obj, qw(submit) ); - 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 -- 2.11.0