The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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;