6 eval { require XML::LibXML; }
7 or plan skip_all => "No XML::LibXML";
8 eval { require LWP::UserAgent; }
9 or plan skip_all => "No XML::LibXML";
10 eval { require Crypt::SSLeay; }
11 or plan skip_all => "No Crypt::SSLeay";
21 BEGIN { $gotmodule = use_ok('DevHelp::Payments::Eway'); }
29 my $cfg = bless \%cfg_good, 'Test::Cfg';
31 my $payment = DevHelp::Payments::Eway->new($cfg);
33 ok($payment, 'make payment object');
38 cardnumber => '4444333322221111',
39 expirydate => '200708',
40 nameoncard => "Joseph Bloe",
46 my $result = $payment->payment(%req);
47 ok($result->{success}, "successful");
48 ok($result->{receipt}, "got a receipt");
49 ok($result->{transactionid}, "got a transaction id");
55 cardnumber => '4444333322221111',
56 expirydate => '200708',
57 nameoncard => "Joseph Bloe",
64 my $result = $payment->payment(%req);
65 ok($result->{success}, "successful with AUD");
66 ok($result->{receipt}, "got a receipt");
67 ok($result->{transactionid}, "got a transaction id");
73 cardnumber => '4444333322221111',
74 expirydate => '200708',
75 nameoncard => "Joseph Bloe",
80 firstname => "Joseph",
83 address2 => "56 Unknown Pde",
88 email => 'test@example.com',
89 description => "Test transaction",
90 ipaddress => "127.0.0.1",
93 my $result = $payment->payment(%req);
94 ok($result->{success}, "successful with details");
95 ok($result->{receipt}, "got a receipt");
96 ok($result->{transactionid}, "got a transaction id");
102 cardnumber => '4242424242424242',
103 expirydate => '200708',
104 nameoncard => "Joseph Bloe",
109 my $result = $payment->payment(%req);
110 ok(!$result->{success}, "failure (bad card number)");
111 ok($result->{statuscode}, "got an error code");
112 like($result->{error}, qr/credit card/, "error should mention credit card");
118 cardnumber => '4444333322221111',
119 expirydate => '200708',
120 nameoncard => "Joseph Bloe",
125 my $result = $payment->payment(%req);
126 ok(!$result->{success}, "failure (generated error)");
127 like($result->{statuscode}, qr/[0-9]+/, "got a numeric error code");
128 like($result->{error}, qr/^Refer to Issuer/, "match expected message");
134 my ($self, $section, $key, $def) = @_;
136 $section eq 'eway payments' or die;
137 exists $self->{$key} or return $def;
139 return $self->{$key};