#!perl
use Test::NoWarnings;
use Test::More tests => 16 + 1;
use lib qw(t/);
use testlib;
my $tracking = Business::UPS::Tracking->new(
AccessLicenseNumber => 'license',
UserId => 'username',
Password => 'password',
);
isa_ok( $tracking, 'Business::UPS::Tracking' );
is( $tracking->url, 'https://wwwcie.ups.com/ups.app/xml/Track', 'Check url' );
is( $tracking->AccessLicenseNumber, 'license', 'Check license accessor' );
is( $tracking->UserId, 'username', 'Check username accessor' );
is( $tracking->Password, 'password', 'Check password accessor' );
isa_ok( $tracking->_ua, 'LWP::UserAgent' );
my $ua = LWP::UserAgent->new( agent => "TEST", );
$tracking->_ua($ua);
is( $tracking->_ua->agent, 'TEST', 'Check new user agent' );
my $access_request = $tracking->access_request;
like( $access_request, qr|username|,
'Check access request username' );
like(
$access_request,
qr|license|,
'Check access request license'
);
like(
$access_request,
qr|password|,
'Check access request password'
);
my $request1 = $tracking->request( TrackingNumber => '1Z12345E1111111114' );
isa_ok( $request1, 'Business::UPS::Tracking::Request' );
is( $request1->TrackingNumber, '1Z12345E1111111114',
'Check TrackingNumber accesor' );
is( $request1->tracking, $tracking, 'Check tracking accesor' );
like(
$request1->tracking_request,
qr|Trackactivity1Z12345E1111111114|,
'Check track request 1'
);
my $request2 = $tracking->request(
ReferenceNumber => 'testreference',
PickupDateRangeBegin => '20090101',
PickupDateRangeEnd => DateTime->today,
ShipperNumber => '12345',
DestinationPostalCode => '1070',
DestinationCountryCode => 'AT',
OriginPostalCode => '91058',
OriginCountryCode => 'DE',
CustomerContext => 'testcontext',
);
my $datecheck = DateTime->today->ymd('');
like(
$request2->tracking_request,
qr|Trackactivitytestcontexttestreference123451070AT91058DE20090101$datecheck01|,
'Check track request 2'
);
my $request3
= $tracking->request( ShipmentIdentificationNumber => '1234567890', );
like(
$request3->tracking_request,
qr|Trackactivity1234567890|,
'Check track request 3'
);