+++ /dev/null
-#!/usr/bin/env perl
-use strict;
-use warnings;
-use Test::More;
-
-use lib 't';
-require 'TestFixtures.pm';
-use Business::OnlinePayment;
-
-my $merchant_id = $ENV{BAMBORA_MERCHANT_ID};
-my $api_key = $ENV{BAMBORA_API_KEY};
-
-SKIP: {
- skip 'Missing env vars BAMBORA_MERCHANT_ID and BAMBORA_API_KEY', 3
- unless $merchant_id && $api_key;
-
- my %content = (
- login => $merchant_id,
- password => $api_key,
- action => 'Authorization Only',
- amount => '9.99',
-
- owner => 'Freeside Internet Services',
- name => 'Mitch Jackson',
- address => '1407 Graymalkin Lane',
- city => 'Vancouver',
- state => 'BC',
- zip => '111 111',
- country => 'CA',
-
- invoice_number => time(),
- card_number => '4030000010001234',
- cvv2 => '123',
- expiration => '1122',
- phone => '251-300-1300',
- email => 'mitch@freeside.biz',
- );
-
- my $tr;
- ok( $tr = Business::OnlinePayment->new('Bambora'), 'Instantiatiate $tr' );
- ok( $tr->content( %content ), 'Set transaction content onto $tr' );
- {
- local $@;
- eval { $tr->submit };
- ok( !$@, "Submit pre-auth (expect approve)" );
- }
-
- my $response;
- my %expect = (
- amount => '9.99',
- approved => 1,
- auth_code => 'TEST',
- message => 'Approved',
- message_id => 1,
- payment_method => 'CC',
- type => 'PA',
- );
- my @expect = qw(
- card
- created
- order_number
- risk_score
- id
- );
-
- ok( $response = $tr->response_decoded, 'response_decoded' );
-
- for my $k ( keys %expect ) {
- ok(
- $response->{$k} eq $expect{$k},
- sprintf '$tr->%s == %s', $k, $expect{$k}
- );
- }
-
- for my $k ( @expect ) {
- ok(
- defined $response->{$k},
- sprintf '$r->%s (%s)',
- $k, $response->{$k}
- );
- }
-
- %content = (
- %content,
- action => 'Post Authorization',
- order_number => $tr->order_number,
- amount => '8.99', # $1 Less than pre-auth
- );
-
- my $tr_pa;
- ok( $tr_pa = Business::OnlinePayment->new('Bambora'), 'Instantiate $tr_pa' );
- ok( $tr_pa->content( %content ), 'Set transaction content onto $tr_pa' );
- {
- local $@;
- eval { $tr_pa->submit };
- ok( !$@, "Submit post-auth" );
- warn "Error: $@" if $@;
- }
-
- %expect = (
- amount => '8.99',
- approved => '1',
- message => 'Approved',
- message_id => '1',
- type => 'PAC',
- );
- @expect = (qw/
- authorizing_merchant_id
- card
- created
- order_number
- id
- /);
-
- my $response_pa;
- ok( $response_pa = $tr_pa->response_decoded, 'response_decoded' );
-
- for my $k ( keys %expect ) {
- ok(
- $response_pa->{$k} eq $expect{$k},
- sprintf '$tr->%s == %s', $k, $expect{$k}
- );
- }
-
- for my $k ( @expect ) {
- ok(
- defined $response_pa->{$k},
- sprintf '$r->%s (%s)',
- $k, $response_pa->{$k}
- );
- }
-
- #
- # Void Transaction
- #
-
- my %content_void = (
- action => 'Void',
- login => $content{login},
- password => $content{password},
- order_number => $tr_pa->order_number,
- amount => '8.99',
- );
-
- my $tr_void;
- ok( $tr_void = Business::OnlinePayment->new('Bambora'), 'Instantiate $tr_void' );
- ok( $tr_void->content( %content_void ), 'Set transaction content onto $tr_void' );
- {
- local $@;
- eval { $tr_void->submit };
- ok( !$@, "Submit void" );
- warn "Error: $@" if $@;
- }
-
- %expect = (
- amount => '8.99',
- approved => '1',
- message => 'Approved',
- message_id => '1',
- type => 'R',
- );
- @expect = (qw/
- authorizing_merchant_id
- card
- created
- order_number
- id
- /);
-
-}
-
-done_testing;
\ No newline at end of file