perl-business-paypal-api/t/OptionFields.t
2015-01-02 12:50:57 -05:00

82 lines
2.7 KiB
Perl

# This file is part of Business:PayPal:API Module. License: Same as Perl. See its README for details.
# -*- mode: cperl -*-
use Test::More;
use strict;
use autodie qw(:all);
use Cwd;
if ( !$ENV{WPP_TEST} || !-f $ENV{WPP_TEST} ) {
plan skip_all =>
'No WPP_TEST env var set. Please see README to run tests';
}
else {
plan tests => 6;
}
use_ok( 'Business::PayPal::API::TransactionSearch' );
use_ok( 'Business::PayPal::API::GetTransactionDetails' );
#########################
require 't/API.pl';
my %args = do_args();
=pod
These tests verify the options work.
=cut
open(OPTIONS_PAY_HTML, ">", "options-payment.html");
print OPTIONS_PAY_HTML <<_OPTIONS_PAYMENT_DATA_
<html>
<body>
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="$args{SellerEmail}" />
<input type="hidden" name="item_name" value="Field Options Tester" />
<input id="no_shipping" type="hidden" name="no_shipping" value="0" />
<input id="amount" type="text" name="amount" size="7" minimum="120" value="120" />
<input type="hidden" name="on1" value="firstOption" />
<input type="hidden" name="os1" value="Yes" />
<input type="hidden" name="on2" value="size"/>
<input name="os2" id="os2" value="Large"/>
<input type="image" border="0" name="submit" alt="Submit Field Tester with $120 payment">
</form></body></html>
_OPTIONS_PAYMENT_DATA_
;
close(OPTIONS_PAY_HTML);
my $cwd = getcwd;
print STDERR <<"_OPTIONS_LINK_";
Please note the next series of tests will not succeeed unless there is at
least one transaction that is part of a subscription payments in your business
account.
if you haven't made one yet, you can visit:
file://$cwd/options-payment.html
and use the sandbox buyer account to make the payment.
_OPTIONS_LINK_
my $startdate = '1998-01-01T01:45:10.00Z';
my $ts = new Business::PayPal::API::TransactionSearch( %args );
my $td = new Business::PayPal::API::GetTransactionDetails( %args );
my $resp = $ts->TransactionSearch(StartDate => $startdate);
my %detail;
foreach my $record (@{$resp}) {
%detail = $td->GetTransactionDetails(TransactionID => $record->{TransactionID});
last if $detail{PII_Name} =~ /Field\s+Options/i;
}
like($detail{PaymentItems}[0]{Name}, qr/Field\s+Options/i, 'Found field options test transaction');
like($detail{PII_Name}, qr/Field\s+Options/i, 'Found field options test transaction');
foreach my $options ($detail{PaymentItems}[0]{Options}, $detail{PII_Options}) {
ok((scalar(@$options) == 2 and $options->[0] eq '' and $options->[0] eq ''),
"PaymentItems's Options has 2 elements with empty strings");
}