use strict;
use warnings;
use Test::More;
use Class::Load 'load_class';
my $dcc
= new_ok( load_class('Business::CyberSource::Response') => [{
'ccDCCReply' => {
'validHours' => '1277',
'marginRatePercentage' => '03.0000',
'dccSupported' => 'TRUE',
'reasonCode' => '100'
},
'purchaseTotals' => {
'currency' => 'USD',
'exchangeRateTimeStamp' => '20090101 00:00',
'exchangeRate' => '0.8810',
'foreignAmount' => '0.88',
'foreignCurrency' => 'EUR'
},
'decision' => 'ACCEPT',
'reasonCode' => '100',
'requestID' => '3523707038974018737442',
'requestToken' => 'AhjzbwSRfhJ+PBljduoOjaSftQ/B8TaQHoudanOWUaOdpK0X'
. 'gMgAIxto',
'merchantReferenceCode' => 'test-dcc-authorization-1352399438'
}]);
is $dcc->foreign_currency, 'EUR', 'dcc response foreign_currency';
is $dcc->foreign_amount, '0.88', 'dcc response foreign_amount';
is $dcc->exchange_rate, '0.8810', 'dcc response exchange_rate';
is $dcc->dcc_supported, 1, 'dcc response dcc_supported';
ok $dcc->reference_code, 'reference code exists';
is $dcc->request_specific_reason_code, 100, 'DCC Reason code is 100';
is $dcc->currency, 'USD', 'check currency';
is $dcc->dcc_supported, 1, 'check dcc supported';
is $dcc->exchange_rate_timestamp, '20090101 00:00', 'check exchange timestamp';
ok $dcc->valid_hours, 'check valid hours exists';
is $dcc->margin_rate_percentage, '03.0000', 'check margin rate percentage';
my $credit
= new_ok( load_class('Business::CyberSource::Response') => [{
'ccCreditReply' => {
'amount' => '1.00',
'requestDateTime' => '2012-11-08T18:49:45Z',
'reconciliationID' => '50934978',
'reasonCode' => '100'
},
'purchaseTotals' => {
'currency' => 'USD'
},
'decision' => 'ACCEPT',
'reasonCode' => '100',
'requestID' => '3524005857290176056442',
'requestToken' => 'Ahj/7wSRfhLPoHHBtJjoupudaphoOW7hP1d/IkAwJP2pudap'
. 'ondfpAOUJOUONoufooooonpEs+RLtvEIPQAA8ipt',
'merchantReferenceCode' => 'test-dcc-authorization-1352400581'
}]);
is $credit->amount, '1.00', 'amount';
done_testing;