- skip if B::OP::https fails, test cases from bop.t
authorplobbes <plobbes>
Sat, 13 Jan 2007 17:23:23 +0000 (17:23 +0000)
committerplobbes <plobbes>
Sat, 13 Jan 2007 17:23:23 +0000 (17:23 +0000)
t/fd_precharge.t [new file with mode: 0644]

diff --git a/t/fd_precharge.t b/t/fd_precharge.t
new file mode 100644 (file)
index 0000000..ae3a92c
--- /dev/null
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More;
+
+{    # fake test driver (with a submit method)
+
+    package Business::OnlinePayment::MOCK;
+    use strict;
+    use warnings;
+    use base qw(Business::OnlinePayment);
+    sub submit { my $self = shift; return 1; }
+}
+$INC{"Business/OnlinePayment/MOCK.pm"} = "testing";
+
+use Business::OnlinePayment;
+
+my $package = "Business::OnlinePayment";
+my $fddrv   = "preCharge";
+
+eval {
+    my $tobj = $package->new("MOCK");
+    $tobj->fraud_detect($fddrv);
+    $tobj->submit;
+};
+
+if ( $@ =~ /One of Net::SSLeay.*?or Crypt::SSLeay/ ) {
+    plan skip_all => "fraud_detect: $@\n";
+}
+else {
+    plan tests => 5;
+}
+
+my $obj = $package->new("MOCK");
+can_ok( $obj, qw(fraud_detect) );
+
+# fraud detection failure modes
+my $fdbog = "__BOGUS_PROCESSOR";
+
+is( $obj->fraud_detect($fdbog), $fdbog, "fraud_detect set to '$fdbog'" );
+eval { $obj->submit; };
+like(
+    $@,
+    qr/^Unable to locate fraud_detection /,
+    "fraud_detect with unknown processor croaks"
+);
+
+is( $obj->fraud_detect($fddrv), $fddrv, "fraud_detect set to '$fddrv'" );
+eval { $obj->submit; };
+like( $@, qr/^missing required /, "fraud_detect($fddrv) missing fields" );
+
+# XXX: more test cases needed