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 Module::Runtime qw( use_module );

my $capture =
	new_ok( use_module('Business::CyberSource::Request::Capture') => [{
		reference_code => 'not sending',
		service => {
			request_id => 42,
		},
		purchase_totals => {
			total    => 2018.00,
			currency => 'USD',
		}
	}]);

can_ok $capture, 'serialize';

my %expected = (
	merchantReferenceCode => 'not sending',
	purchaseTotals        => {
		grandTotalAmount => 2018.00,
		currency         => 'USD',
	},
	ccCaptureService=> {
		authRequestID => 42,
		run          => 'true',
	},
);

is_deeply $capture->serialize, \%expected, 'serialize';

done_testing;