Business-CyberSource
view release on metacpan or search on metacpan
t/lib/Test/Business/CyberSource.pm view on Meta::CPAN
package Test::Business::CyberSource;
use strict;
use warnings;
use namespace::autoclean;
use Module::Runtime qw( use_module );
use Test::Requires 'Bread::Board';
use Test::More;
use Moose;
extends 'Bread::Board::Container';
sub BUILD {
my $self = shift;
return container $self => as {
container client => as {
service 'user' => $ENV{PERL_BUSINESS_CYBERSOURCE_USERNAME}
|| 'test';
service 'pass' => $ENV{PERL_BUSINESS_CYBERSOURCE_PASSWORD}
|| 'test';
service test => 1;
service object => (
class => 'Business::CyberSource::Client',
lifecycle => 'Singleton',
block => sub {
my $svc = shift;
if ( $svc->param('user') eq 'test'
|| $svc->param('pass') eq 'test' )
{
plan skip_all => 'Unable to send with fake '
. 'credentials. Set both '
. 'PERL_BUSINESS_CYBERSOURCE_USERNAME ' . 'and '
. 'PERL_BUSINESS_CYBERSOURCE_PASSWORD '
. 'in the environment';
return;
}
my $client =
use_module('Business::CyberSource::Client')->new(
{
user => $svc->param('user'),
pass => $svc->param('pass'),
test => $svc->param('test'),
}
);
return $client;
},
dependencies => {
user => depends_on('user'),
pass => depends_on('pass'),
test => depends_on('test'),
},
);
};
container card => as {
service holder => 'Caleb Cushing';
service security_code => '1111';
service object => (
class => 'Business::CyberSource::RequestPart::Card',
dependencies => {
security_code => depends_on('../helper/security_code'),
holder => depends_on('../helper/holder'),
},
parameters => {
account_number => {
isa => 'Str',
default => '4111111111111111',
},
expiration => {
isa => 'HashRef',
default => {
month => 5,
year => 2025,
},
},
},
);
};
container helper => as {
container services => as {
service first_name => 'Caleb';
service last_name => 'Cushing';
service street => '2104 E Anderson Ln';
service city => 'Austin';
service state => 'TX';
service country => 'US';
service postal_code => '78752';
( run in 0.740 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )