diff options
author | fbriere <fbriere> | 2006-02-13 21:10:31 +0000 |
---|---|---|
committer | fbriere <fbriere> | 2006-02-13 21:10:31 +0000 |
commit | 7af3e137d97474aa364a585359bbfb400f0594cf (patch) | |
tree | d4da4c5f4b376b2566ca5cca6d304ddf4d168afb /t/20emit.t |
Initial import
Diffstat (limited to 't/20emit.t')
-rwxr-xr-x | t/20emit.t | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/t/20emit.t b/t/20emit.t new file mode 100755 index 0000000..a162f10 --- /dev/null +++ b/t/20emit.t @@ -0,0 +1,143 @@ +use Test::More tests => 4 + 2; + +BEGIN { use_ok('Business::OnlinePayment') }; +BEGIN { use_ok('Business::OnlinePayment::InternetSecure') }; +BEGIN { use_ok('XML::Simple', qw(xml_in)) }; +BEGIN { use_ok('Encode') }; + +use charnames ':full'; # Why doesn't this work with use_ok? + +use constant TRANSACTIONS => ( + { + _test => 0, + + action => 'Normal Authorization', + + type => 'Visa', + card_number => '0000000000000000', + exp_date => '2004-07', + cvv2 => '000', + + name => "Fr\N{LATIN SMALL LETTER E WITH ACUTE}d\N{LATIN SMALL LETTER E WITH ACUTE}ric Bri\N{LATIN SMALL LETTER E WITH GRAVE}re", + company => '', + address => '123 Street', + city => 'Metropolis', + state => 'ZZ', + zip => 'A1A 1A1', + country => 'CA', + phone => '(555) 555-1212', + email => 'fbriere@fbriere.net', + + amount => undef, + currency => 'CAD', + taxes => 'GST PST', + + description => [ + { + amount => 9.99, + quantity => 5, + sku => 'a:001', + description => 'Some product', + }, + { + amount => 5.65, + description => 'Shipping', + }, + { + amount => 10.00, + description => 'Some HST example', + taxes => 'HST', + }, + ], + }, + { + _test => 1, + + action => 'Normal Authorization', + + type => 'Visa', + card_number => '0000000000000000', + exp_date => '7/2004', + + name => "Fr\x{e9}d\x{e9}ric Bri\x{e8}re", + + amount => 12.95, + currency => 'USD', + taxes => '', + description => "Box o' goodies", + }, +); + + +my $txn = new Business::OnlinePayment 'InternetSecure', merchant_id => '0000'; + +$/ = ''; +foreach (TRANSACTIONS) { + $txn->test_transaction(delete $_->{_test}); + $txn->content(%$_); + is_deeply( + xml_in(Encode::encode('utf8', $txn->to_xml)), + xml_in(scalar <DATA>) + ); +} + + +__DATA__ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<TranxRequest> + <MerchantNumber>0000</MerchantNumber> + <xxxCardNumber>0000000000000000</xxxCardNumber> + <xxxCCMonth>07</xxxCCMonth> + <xxxCCYear>2004</xxxCCYear> + <CVV2>1</CVV2> + <CVV2Indicator>000</CVV2Indicator> + <Products>9.99::5::a 001::Some product::{CAD}{GST}{PST}|5.65::1::::Shipping::{CAD}{GST}{PST}|10.00::1::::Some HST example::{CAD}{HST}</Products> + <xxxName>Frédéric Brière</xxxName> + <xxxCompany></xxxCompany> + <xxxAddress>123 Street</xxxAddress> + <xxxCity>Metropolis</xxxCity> + <xxxProvince>ZZ</xxxProvince> + <xxxPostal>A1A 1A1</xxxPostal> + <xxxCountry>CA</xxxCountry> + <xxxPhone>(555) 555-1212</xxxPhone> + <xxxEmail>fbriere@fbriere.net</xxxEmail> + <xxxShippingName></xxxShippingName> + <xxxShippingCompany></xxxShippingCompany> + <xxxShippingAddress></xxxShippingAddress> + <xxxShippingCity></xxxShippingCity> + <xxxShippingProvince></xxxShippingProvince> + <xxxShippingPostal></xxxShippingPostal> + <xxxShippingCountry></xxxShippingCountry> + <xxxShippingPhone></xxxShippingPhone> + <xxxShippingEmail></xxxShippingEmail> +</TranxRequest> + +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<TranxRequest> + <MerchantNumber>0000</MerchantNumber> + <xxxCardNumber>0000000000000000</xxxCardNumber> + <xxxCCMonth>07</xxxCCMonth> + <xxxCCYear>2004</xxxCCYear> + <CVV2>0</CVV2> + <CVV2Indicator></CVV2Indicator> + <Products>12.95::1::::Box o' goodies::{USD}{TEST}</Products> + <xxxName>Frédéric Brière</xxxName> + <xxxCompany></xxxCompany> + <xxxAddress></xxxAddress> + <xxxCity></xxxCity> + <xxxProvince></xxxProvince> + <xxxPostal></xxxPostal> + <xxxCountry></xxxCountry> + <xxxPhone></xxxPhone> + <xxxEmail></xxxEmail> + <xxxShippingName></xxxShippingName> + <xxxShippingCompany></xxxShippingCompany> + <xxxShippingAddress></xxxShippingAddress> + <xxxShippingCity></xxxShippingCity> + <xxxShippingProvince></xxxShippingProvince> + <xxxShippingPostal></xxxShippingPostal> + <xxxShippingCountry></xxxShippingCountry> + <xxxShippingPhone></xxxShippingPhone> + <xxxShippingEmail></xxxShippingEmail> +</TranxRequest> + |