summaryrefslogtreecommitdiff
path: root/t/20emit.t
diff options
context:
space:
mode:
authorfbriere <fbriere>2006-02-13 21:10:31 +0000
committerfbriere <fbriere>2006-02-13 21:10:31 +0000
commit7af3e137d97474aa364a585359bbfb400f0594cf (patch)
treed4da4c5f4b376b2566ca5cca6d304ddf4d168afb /t/20emit.t
Initial import
Diffstat (limited to 't/20emit.t')
-rwxr-xr-xt/20emit.t143
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>
+