bump version to 3.00_05, fix, fix inclusion of B:FS:preCharge in "make install" and...
[Business-OnlinePayment.git] / t / bop.t
diff --git a/t/bop.t b/t/bop.t
index 59b1772..8eb762d 100644 (file)
--- a/t/bop.t
+++ b/t/bop.t
@@ -1,9 +1,8 @@
 #!/usr/bin/perl
-# $Id: bop.t,v 1.8 2006-11-20 05:29:14 plobbes Exp $
 
 use strict;
 use warnings;
-use Test::More tests => 60;
+use Test::More tests => 62;
 
 BEGIN { use_ok("Business::OnlinePayment") or exit; }
 
@@ -18,19 +17,15 @@ BEGIN { use_ok("Business::OnlinePayment") or exit; }
 {    # fake test driver 2 (with submit method that dies)
 
     package Business::OnlinePayment::MOCK2;
-    use strict;
-    use warnings;
-    use base qw(Business::OnlinePayment);
-    sub submit { die("in processor submit\n"); }
+    use base qw(Business::OnlinePayment::MOCK1);
+    sub submit { my $self = shift; die("in processor submit\n"); }
 }
 
 {    # fake test driver 3 (with submit method)
 
     package Business::OnlinePayment::MOCK3;
-    use strict;
-    use warnings;
-    use base qw(Business::OnlinePayment);
-    sub submit { return (1); }
+    use base qw(Business::OnlinePayment::MOCK1);
+    sub submit { my $self = shift; return 1; }
 }
 
 my $package = "Business::OnlinePayment";
@@ -114,14 +109,19 @@ foreach my $drv (@drivers) {
     is( $obj2->submit, "1", "MOCK3(obj2) submit returns 1" );
 
     # fraud detection failure modes
-    my $obj  = $package->new("MOCK3");
-    my $proc = "__BOGUS_PROCESSOR";
+    my $obj   = $package->new("MOCK3");
+    my $bogus = "__BOGUS_PROCESSOR";
+    my $valid = "preCharge";
 
-    is( $obj->fraud_detect($proc), $proc, "fraud_detect set to '$proc'" );
+    is( $obj->fraud_detect($bogus), $bogus, "fraud_detect set to '$bogus'" );
     eval { $obj->submit; };
     is( $@, "", "fraud_detect ignores non-existant processors" );
 
-    # XXX: need more test cases for when fraud detection is enabled
+    is( $obj->fraud_detect($valid), $valid, "fraud_detect set to '$valid'" );
+    eval { $obj->submit; };
+    like( $@, qr/^missing required /, "fraud_detect($valid) missing fields" );
+
+    # XXX: more test cases for preCharge needed
 }
 
 {    # content
@@ -197,7 +197,7 @@ foreach my $drv (@drivers) {
 
     eval { $obj->submit; };
     like( $@, qr/^Processor subclass did not /, "missing submit() croaks" );
-    is( $obj->can("submit"), $package->can("submit"), "submit unchanged" );
+    isnt( $obj->can("submit"), $package->can("submit"), "submit changed" );
 
     my $mock2 = $package->new("MOCK2");
     can_ok( $mock2, qw(submit) );