Cleanup for public release
[Business-OnlinePayment-NMI.git] / t / 02-ach.t
1 use Test::More tests => 3;
2
3 use Business::OnlinePayment;
4
5 my %defaults = (
6   name       => 'Joe Tester',
7   address    => '888',
8   city       => 'Nowhere',
9   state      => 'CA',
10   zip        => '77777',
11   phone      => '510-555-0021',
12   email      => 'joe@example.com',
13   description => 'Business::OnlinePayment::NMI Test',
14
15   action     => 'Normal Authorization',
16   account_number => '222223333344', # meaningless
17   routing_code => '411151111',
18   amount     => '13.00',
19   );
20
21 # SALE
22 my %content = %defaults;
23 my $ordernum = ok_test(\%content, 'echeck sale');
24
25 #VOID
26 %content = (
27   action => 'Void',
28   order_number => $ordernum,
29 );
30 ok_test(\%content, 'echeck void');
31
32 #FAILURE
33 %content = %defaults;
34 $content{amount} = '0.10'; # amounts < 1.00 are declined on the demo account
35 $content{fail} = 1;
36 ok_test(\%content, 'echeck decline');
37
38 sub ok_test {
39   my ($content, $label) = @_;
40   my $fail = delete $content{fail} or 0;
41   my $trans = new Business::OnlinePayment('NMI');
42   $trans->content(
43     login    => 'demo',
44     password => 'password',
45     type     => 'echeck',
46     %$content
47   );
48   $trans->submit;
49   diag($trans->error_message) if (!$fail and $trans->error_message);
50   if($fail) {
51     ok(!$trans->is_success, $label)
52   }
53   else {
54     ok($trans->is_success, $label);
55   }
56   return $trans->order_number;
57 }
58
59 1;