- skip if B::OP::https fails, test cases from bop.t
[Business-OnlinePayment.git] / t / fd_precharge.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use Test::More;
6
7 {    # fake test driver (with a submit method)
8
9     package Business::OnlinePayment::MOCK;
10     use strict;
11     use warnings;
12     use base qw(Business::OnlinePayment);
13     sub submit { my $self = shift; return 1; }
14 }
15 $INC{"Business/OnlinePayment/MOCK.pm"} = "testing";
16
17 use Business::OnlinePayment;
18
19 my $package = "Business::OnlinePayment";
20 my $fddrv   = "preCharge";
21
22 eval {
23     my $tobj = $package->new("MOCK");
24     $tobj->fraud_detect($fddrv);
25     $tobj->submit;
26 };
27
28 if ( $@ =~ /One of Net::SSLeay.*?or Crypt::SSLeay/ ) {
29     plan skip_all => "fraud_detect: $@\n";
30 }
31 else {
32     plan tests => 5;
33 }
34
35 my $obj = $package->new("MOCK");
36 can_ok( $obj, qw(fraud_detect) );
37
38 # fraud detection failure modes
39 my $fdbog = "__BOGUS_PROCESSOR";
40
41 is( $obj->fraud_detect($fdbog), $fdbog, "fraud_detect set to '$fdbog'" );
42 eval { $obj->submit; };
43 like(
44     $@,
45     qr/^Unable to locate fraud_detection /,
46     "fraud_detect with unknown processor croaks"
47 );
48
49 is( $obj->fraud_detect($fddrv), $fddrv, "fraud_detect set to '$fddrv'" );
50 eval { $obj->submit; };
51 like( $@, qr/^missing required /, "fraud_detect($fddrv) missing fields" );
52
53 # XXX: more test cases needed