-BEGIN { $| = 1; print "1..1\n"; }
-END {print "not ok 1\n" unless $loaded;}
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More tests => 11;
+
use Business::OnlinePayment;
-$loaded = 1;
-print "ok 1\n";
+
+my $package = "Business::OnlinePayment";
+my $driver = "PayflowPro";
+
+{ # new
+ my $obj;
+
+ $obj = $package->new($driver);
+ isa_ok( $obj, $package );
+
+ # convenience methods
+ can_ok( $obj, qw(vendor partner) );
+ can_ok( $obj, qw(order_number avs_code cvv2_response) );
+ can_ok( $obj, qw(request_id debug expdate_mmyy) );
+
+ # internal methods
+ can_ok( $obj, qw(_map_fields _revmap_fields) );
+
+ # defaults
+ my $server = "payflowpro.verisign.com";
+
+ is( $obj->server, $server, "server($server)" );
+ is( $obj->port, "443", "port(443)" );
+}
+
+{ # expdate
+ my $obj = $package->new($driver);
+ my @exp = (
+
+ #OFF [qw(1999.8 0899)],
+ #OFF [qw(1984-11 1184)],
+ #OFF [qw(06/7 0706)],
+ #OFF [qw(06-12 1206)],
+ [qw(12/06 1206)],
+ [qw(6/2000 0600)],
+ [qw(10/2000 1000)],
+ [qw(1/99 0199)],
+ );
+ foreach my $aref (@exp) {
+ my ( $exp, $moyr ) = @$aref;
+ my ($mmyy) = $obj->expdate_mmyy($exp);
+ is( $mmyy, $moyr, "$exp: MMYY '$mmyy' eq '$moyr' from $exp" );
+ }
+}