- Add a second test driver (this one has a submit method)
authorplobbes <plobbes>
Thu, 31 Aug 2006 19:49:55 +0000 (19:49 +0000)
committerplobbes <plobbes>
Thu, 31 Aug 2006 19:49:55 +0000 (19:49 +0000)
- update submit() test cases

t/bop.t

diff --git a/t/bop.t b/t/bop.t
index db12334..7eb793f 100644 (file)
--- a/t/bop.t
+++ b/t/bop.t
@@ -1,26 +1,37 @@
 #!/usr/bin/perl
 #!/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 strict;
 use warnings;
-use Test::More tests => 50;
+use Test::More tests => 54;
 
 BEGIN { use_ok("Business::OnlinePayment") or exit; }
 
 
 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);
 
     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 $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)
 
 # 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) );
 
 {    # 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) );
 
     can_ok( $package, qw(submit) );
     can_ok( $obj,     qw(submit) );
 
-
     eval { $obj->submit; };
     like( $@, qr/^Processor subclass did not /, "missing submit() croaks" );
     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
 }
 
 {    # dump_contents