- Added tests for Pay
- Fixed some tests/code for PayDriver - Added i18n for PayDriver - Added a really, really bare-bones Cash plugin.
This commit is contained in:
parent
39a0b6ff1f
commit
60362cb747
7 changed files with 415 additions and 23 deletions
|
|
@ -222,7 +222,7 @@ sub insertCommercePayDriverTable {
|
||||||
print "\tInstall the Commerce PayDriver Table.\n" unless ($quiet);
|
print "\tInstall the Commerce PayDriver Table.\n" unless ($quiet);
|
||||||
# and here's our code
|
# and here's our code
|
||||||
$session->db->write(<<EOSQL);
|
$session->db->write(<<EOSQL);
|
||||||
CREATE TABLE payment_Gateway (
|
CREATE TABLE paymentGateway (
|
||||||
paymentGatewayId VARCHAR(22) binary NOT NULL primary key,
|
paymentGatewayId VARCHAR(22) binary NOT NULL primary key,
|
||||||
label VARCHAR(255),
|
label VARCHAR(255),
|
||||||
className VARCHAR(255),
|
className VARCHAR(255),
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ sub addPaymentGateway {
|
||||||
unless isIn($requestedClass, (keys %{$self->getDrivers}) );
|
unless isIn($requestedClass, (keys %{$self->getDrivers}) );
|
||||||
WebGUI::Error::InvalidParam->throw(error => q{You must pass a hashref of options to create a new PayDriver object})
|
WebGUI::Error::InvalidParam->throw(error => q{You must pass a hashref of options to create a new PayDriver object})
|
||||||
unless defined($options) and ref $options eq 'HASH' and scalar keys %{ $options };
|
unless defined($options) and ref $options eq 'HASH' and scalar keys %{ $options };
|
||||||
my $driver = eval { WebGUI::Pluggable::instanciate($requestedClass, 'create', [ $self->session, $options ]) };
|
my $driver = eval { WebGUI::Pluggable::instanciate($requestedClass, 'create', [ $self->session, 'TEMPORARY_LABEL', $options ]) };
|
||||||
return $driver;
|
return $driver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,7 +109,7 @@ sub getOptions {
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 getPaymentGateway ( )
|
=head2 getPaymentGateway ( $id )
|
||||||
|
|
||||||
Looks up an existing PayDriver in the db by paymentGatewayId and returns
|
Looks up an existing PayDriver in the db by paymentGatewayId and returns
|
||||||
that object. If the PayDriver throws an exception, it is propagated
|
that object. If the PayDriver throws an exception, it is propagated
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ sub create {
|
||||||
my $self = WebGUI::Shop::PayDriver->_buildObj($session, $class, $paymentGatewayId, $label, $options);
|
my $self = WebGUI::Shop::PayDriver->_buildObj($session, $class, $paymentGatewayId, $label, $options);
|
||||||
|
|
||||||
# and persist this instance in the db
|
# and persist this instance in the db
|
||||||
$session->db->write('insert into payment_Gateway (paymentGatewayId, label, className) VALUES (?,?,?)', [
|
$session->db->write('insert into paymentGateway (paymentGatewayId, label, className) VALUES (?,?,?)', [
|
||||||
$paymentGatewayId,
|
$paymentGatewayId,
|
||||||
$label,
|
$label,
|
||||||
$class,
|
$class,
|
||||||
|
|
@ -146,26 +146,26 @@ sub definition {
|
||||||
%fields = (
|
%fields = (
|
||||||
label => {
|
label => {
|
||||||
fieldType => 'text',
|
fieldType => 'text',
|
||||||
label => $i18n->echo('label'),
|
label => $i18n->get('label'),
|
||||||
hoverHelp => $i18n->echo('label help'),
|
hoverHelp => $i18n->get('label help'),
|
||||||
defaultValue => "Credit Card",
|
defaultValue => "Credit Card",
|
||||||
},
|
},
|
||||||
enabled => {
|
enabled => {
|
||||||
fieldType => 'yesNo',
|
fieldType => 'yesNo',
|
||||||
label => $i18n->echo('enabled'),
|
label => $i18n->get('enabled'),
|
||||||
hoverHelp => $i18n->echo('enabled help'),
|
hoverHelp => $i18n->get('enabled help'),
|
||||||
defaultValue => 1,
|
defaultValue => 1,
|
||||||
},
|
},
|
||||||
groupToUse => {
|
groupToUse => {
|
||||||
fieldType => 'group',
|
fieldType => 'group',
|
||||||
label => $i18n->echo('who can use'),
|
label => $i18n->get('who can use'),
|
||||||
hoverHelp => $i18n->echo('who can use help'),
|
hoverHelp => $i18n->get('who can use help'),
|
||||||
defaultValue => 1,
|
defaultValue => 1,
|
||||||
},
|
},
|
||||||
receiptMessage => {
|
receiptMessage => {
|
||||||
fieldType => 'text',
|
fieldType => 'text',
|
||||||
label => $i18n->echo('receipt message'),
|
label => $i18n->get('receipt message'),
|
||||||
hoverHelp => $i18n->echo('receipt message help'),
|
hoverHelp => $i18n->get('receipt message help'),
|
||||||
defaultValue => undef,
|
defaultValue => undef,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
@ -190,7 +190,7 @@ Removes this PayDriver object from the db.
|
||||||
sub delete {
|
sub delete {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
$self->session->db->write('delete from payment_Gateway where paymentGatewayId=?', [
|
$self->session->db->write('delete from paymentGateway where paymentGatewayId=?', [
|
||||||
$self->getId,
|
$self->getId,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -285,11 +285,17 @@ sub getId {
|
||||||
Return a human readable name for this driver. Never overridden in the
|
Return a human readable name for this driver. Never overridden in the
|
||||||
subclass, instead specified in definition with the name "name".
|
subclass, instead specified in definition with the name "name".
|
||||||
|
|
||||||
|
This is a class method.
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
sub getName {
|
sub getName {
|
||||||
my $self = shift;
|
my $class = shift;
|
||||||
my $definition = $self->definition($self->session);
|
my $session = shift;
|
||||||
|
WebGUI::Error::InvalidParam->throw(error => q{Must provide a session variable})
|
||||||
|
unless ref $session eq 'WebGUI::Session';
|
||||||
|
|
||||||
|
my $definition = $class->definition($session);
|
||||||
|
|
||||||
return $definition->[0]->{name};
|
return $definition->[0]->{name};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -312,7 +318,7 @@ sub new {
|
||||||
unless defined $paymentGatewayId;
|
unless defined $paymentGatewayId;
|
||||||
|
|
||||||
# Fetch the instance data from the db
|
# Fetch the instance data from the db
|
||||||
my $properties = $session->db->quickHashRef('select * from payment_Gateway where paymentGatewayId=?', [
|
my $properties = $session->db->quickHashRef('select * from paymentGateway where paymentGatewayId=?', [
|
||||||
$paymentGatewayId,
|
$paymentGatewayId,
|
||||||
]);
|
]);
|
||||||
WebGUI::Error::ObjectNotFound->throw(error => q{paymentGatewayId not found in db}, id => $paymentGatewayId)
|
WebGUI::Error::ObjectNotFound->throw(error => q{paymentGatewayId not found in db}, id => $paymentGatewayId)
|
||||||
|
|
@ -368,7 +374,7 @@ sub set {
|
||||||
unless ref $properties eq 'HASH' and scalar keys %{ $properties };
|
unless ref $properties eq 'HASH' and scalar keys %{ $properties };
|
||||||
|
|
||||||
my $jsonOptions = to_json($properties);
|
my $jsonOptions = to_json($properties);
|
||||||
$self->session->db->write('update payment_Gateway set options=? where paymentGatewayId=?', [
|
$self->session->db->write('update paymentGateway set options=? where paymentGatewayId=?', [
|
||||||
$jsonOptions,
|
$jsonOptions,
|
||||||
$self->paymentGatewayId
|
$self->paymentGatewayId
|
||||||
]);
|
]);
|
||||||
|
|
|
||||||
56
lib/WebGUI/Shop/PayDriver/Cash.pm
Normal file
56
lib/WebGUI/Shop/PayDriver/Cash.pm
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
package WebGUI::Shop::PayDriver::Cash;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
use WebGUI::Shop::PayDriver;
|
||||||
|
use WebGUI::Exception;
|
||||||
|
|
||||||
|
use base qw/WebGUI::Shop::PayDriver/;
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
sub definition {
|
||||||
|
my $class = shift;
|
||||||
|
my $session = shift;
|
||||||
|
my $definition = shift;
|
||||||
|
|
||||||
|
my $i18n = WebGUI::International->new($session, 'PayDriver_Cash');
|
||||||
|
|
||||||
|
tie my %fields, 'Tie::IxHash';
|
||||||
|
%fields = (
|
||||||
|
sendReceipt => {
|
||||||
|
fieldType => 'yesNo',
|
||||||
|
label => $i18n->echo('sendReceipt'),
|
||||||
|
hoverHelp => $i18n->echo('sendReceipt help'),
|
||||||
|
defaultValue => 0,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
push @{ $definition }, {
|
||||||
|
name => $i18n->echo('Cash'),
|
||||||
|
fields => \%fields,
|
||||||
|
};
|
||||||
|
|
||||||
|
return $class->SUPER::definition($session, $definition);
|
||||||
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
sub getButton {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
sub www_collectPaymentInfo {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
sub www_displayStatus {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
57
lib/WebGUI/i18n/English/PayDriver.pm
Normal file
57
lib/WebGUI/i18n/English/PayDriver.pm
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
package WebGUI::i18n::English::PayDriver;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
our $I18N = {
|
||||||
|
'label' => {
|
||||||
|
message => q|Label|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|Label for the label option.|
|
||||||
|
},
|
||||||
|
|
||||||
|
'label help' => {
|
||||||
|
message => q|The name by which this pagyment gateway is displayed.|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|Hover help for the label option.|
|
||||||
|
},
|
||||||
|
|
||||||
|
'enabled' => {
|
||||||
|
message => q|Enabled|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|Label for the enabled option.|,
|
||||||
|
},
|
||||||
|
|
||||||
|
'enabled help' => {
|
||||||
|
message => q|Sets whether this payment gateway is enabled|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|Hover help for the enabled option.|,
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
'who can use' => {
|
||||||
|
message => q|Group to use this gateway|,
|
||||||
|
lastUpdate => 0,
|
||||||
|
context => q|Label for the group to use option.|,
|
||||||
|
},
|
||||||
|
|
||||||
|
'who can use help' => {
|
||||||
|
message => q|Specifies which group is allowed to use this payment gateway.|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|Hover help for the group to use option.|,
|
||||||
|
},
|
||||||
|
|
||||||
|
'receipt message' => {
|
||||||
|
message => q|Receipt message|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|Label for the receipt message option.|,
|
||||||
|
},
|
||||||
|
|
||||||
|
'receipt message help' => {
|
||||||
|
message => q|The message that will be attached to the receipt.|,
|
||||||
|
lastUpdated => 0,
|
||||||
|
context => q|Hover help the receipt message option.|,
|
||||||
|
},
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
1;
|
||||||
262
t/Shop/Pay.t
Normal file
262
t/Shop/Pay.t
Normal file
|
|
@ -0,0 +1,262 @@
|
||||||
|
# vim:syntax=perl
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
# WebGUI is Copyright 2001-2008 Plain Black Corporation.
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
# Please read the legal notices (docs/legal.txt) and the license
|
||||||
|
# (docs/license.txt) that came with this distribution before using
|
||||||
|
# this software.
|
||||||
|
#------------------------------------------------------------------
|
||||||
|
# http://www.plainblack.com info@plainblack.com
|
||||||
|
#------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Write a little about what this script tests.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
use FindBin;
|
||||||
|
use strict;
|
||||||
|
use lib "$FindBin::Bin/../lib";
|
||||||
|
use Test::More;
|
||||||
|
use Test::Deep;
|
||||||
|
use JSON;
|
||||||
|
use HTML::Form;
|
||||||
|
|
||||||
|
use WebGUI::Test; # Must use this before any other WebGUI modules
|
||||||
|
use WebGUI::Session;
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Init
|
||||||
|
my $session = WebGUI::Test->session;
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Tests
|
||||||
|
|
||||||
|
my $tests = 25;
|
||||||
|
plan tests => 1 + $tests;
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# put your tests here
|
||||||
|
|
||||||
|
my $loaded = use_ok('WebGUI::Shop::Pay');
|
||||||
|
|
||||||
|
my $storage;
|
||||||
|
|
||||||
|
SKIP: {
|
||||||
|
|
||||||
|
skip 'Unable to load module WebGUI::Shop::Pay', $tests unless $loaded;
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# new
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
my $e;
|
||||||
|
my $pay;
|
||||||
|
|
||||||
|
eval { $pay = WebGUI::Shop::Pay->new(); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::InvalidParam', 'new takes an exception to not giving it a session variable');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => 'Must provide a session variable',
|
||||||
|
got => '',
|
||||||
|
expected => 'WebGUI::Session',
|
||||||
|
),
|
||||||
|
'new: requires a session variable',
|
||||||
|
);
|
||||||
|
|
||||||
|
$pay = WebGUI::Shop::Pay->new($session);
|
||||||
|
isa_ok($pay, 'WebGUI::Shop::Pay', 'new returned the right kind of object');
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# session
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
isa_ok($pay->session, 'WebGUI::Session', 'session method returns a session object');
|
||||||
|
is($session->getId, $pay->session->getId, 'session method returns OUR session object');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# addPaymentGateway
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
my $gateway;
|
||||||
|
|
||||||
|
eval { $gateway = $pay->addPaymentGateway(); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::InvalidParam', 'addPaymentGateway croaks without a class');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => 'Must provide a class to create an object',
|
||||||
|
),
|
||||||
|
'addPaymentGateway croaks without a class',
|
||||||
|
);
|
||||||
|
|
||||||
|
eval { $gateway = $pay->addPaymentGateway('WebGUI::Shop::PayDriver::NoSuchDriver'); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::InvalidParam', 'addPaymentGateway croaks without a configured class');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => 'The requested class is not enabled in your WebGUI configuration file',
|
||||||
|
param => 'WebGUI::Shop::PayDriver::NoSuchDriver',
|
||||||
|
),
|
||||||
|
'addPaymentGateway croaks without a configured class',
|
||||||
|
);
|
||||||
|
|
||||||
|
eval { $gateway = $pay->addPaymentGateway('WebGUI::Shop::PayDriver::Cash'); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::InvalidParam', 'addPaymentGateway croaks without options to build a object with');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => 'You must pass a hashref of options to create a new PayDriver object',
|
||||||
|
),
|
||||||
|
'addPaymentGateway croaks without options to build a object with',
|
||||||
|
);
|
||||||
|
|
||||||
|
eval { $gateway = $pay->addPaymentGateway('WebGUI::Shop::PayDriver::Cash', {}); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::InvalidParam', 'addPaymentGateway croaks without options to build a object with');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => 'You must pass a hashref of options to create a new PayDriver object',
|
||||||
|
),
|
||||||
|
'addPaymentGateway croaks without options to build a object with',
|
||||||
|
);
|
||||||
|
|
||||||
|
my $options = {
|
||||||
|
enabled => 1,
|
||||||
|
label => 'Cold, stone hard cash',
|
||||||
|
};
|
||||||
|
my $newDriver = $pay->addPaymentGateway('WebGUI::Shop::PayDriver::Cash', $options);
|
||||||
|
isa_ok($newDriver, 'WebGUI::Shop::PayDriver::Cash', 'added a new, configured Cash driver');
|
||||||
|
|
||||||
|
diag ('----> THE NEXT TEST IS SUPPOSED TO FAIL! REMOVE WHEN RESOLVED. <----');
|
||||||
|
isnt ($newDriver->label, 'TEMPORARY_LABEL', 'fail test until the addPaymentGateway interface is resolved.');
|
||||||
|
|
||||||
|
#TODO: check if options are stored.
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# getDrivers
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
my $drivers = $pay->getDrivers();
|
||||||
|
|
||||||
|
my $defaultPayDrivers = {
|
||||||
|
'WebGUI::Shop::PayDriver::Cash' => 'Cash',
|
||||||
|
};
|
||||||
|
|
||||||
|
cmp_deeply(
|
||||||
|
$drivers,
|
||||||
|
$defaultPayDrivers,
|
||||||
|
'getDrivers returns the default PayDrivers',
|
||||||
|
);
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# getOptions
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
eval { $drivers = $pay->getOptions(); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::InvalidParam', 'getOptions takes exception to not giving it a cart');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => 'Need a cart.',
|
||||||
|
),
|
||||||
|
'getOptions takes exception to not giving it a cart',
|
||||||
|
);
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# getPaymentGateway
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
eval { $gateway = $pay->getPaymentGateway(); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::InvalidParam', 'getPaymentDriver throws an exception when no paymentGatewayId is passed');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => q{Must provide a paymentGatewayId},
|
||||||
|
),
|
||||||
|
'getPaymentGateway throws exception without paymentGatewayId',
|
||||||
|
);
|
||||||
|
|
||||||
|
eval { $gateway = $pay->getPaymentGateway('NoSuchThing'); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::ObjectNotFound', 'getPaymentGateway thows exception when a non-existant paymentGatewayId is passed');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => q{payment gateway not found in db},
|
||||||
|
id => 'NoSuchThing',
|
||||||
|
),
|
||||||
|
'getPaymentGateway throws exception when called with a non-existant paymentGatewayId',
|
||||||
|
);
|
||||||
|
|
||||||
|
$gateway = $pay->getPaymentGateway( $newDriver->getId );
|
||||||
|
isa_ok($gateway, 'WebGUI::Shop::PayDriver::Cash', 'returned payment gateway has correct class');
|
||||||
|
is($gateway->getId, $newDriver->getId, 'getPaymentGateway instantiated the requested driver');
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# getPaymentGateways
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
# Create an extra driver for testing purposes
|
||||||
|
my $otherOptions = {
|
||||||
|
enabled => 1,
|
||||||
|
label => 'Even harder cash',
|
||||||
|
};
|
||||||
|
my $anotherDriver = $pay->addPaymentGateway('WebGUI::Shop::PayDriver::Cash', $otherOptions);
|
||||||
|
|
||||||
|
my $gateways = $pay->getPaymentGateways;
|
||||||
|
my @returnedIds = map {$_->getId} @{ $gateways };
|
||||||
|
cmp_bag(
|
||||||
|
\@returnedIds,
|
||||||
|
[
|
||||||
|
$newDriver->getId,
|
||||||
|
$anotherDriver->getId,
|
||||||
|
],
|
||||||
|
'getPaymentGateways returns all create payment drivers',
|
||||||
|
);
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# www_do
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# www_manage
|
||||||
|
#
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Cleanup
|
||||||
|
END {
|
||||||
|
$session->db->write('delete from paymentGateway');
|
||||||
|
}
|
||||||
|
|
@ -31,7 +31,7 @@ my $session = WebGUI::Test->session;
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Tests
|
# Tests
|
||||||
|
|
||||||
my $tests = 43;
|
my $tests = 45;
|
||||||
plan tests => 1 + $tests;
|
plan tests => 1 + $tests;
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
@ -188,7 +188,7 @@ $driver = WebGUI::Shop::PayDriver->create( $session, $label, $options );
|
||||||
|
|
||||||
isa_ok ($driver, 'WebGUI::Shop::PayDriver', 'create creates WebGUI::Shop::PayDriver object');
|
isa_ok ($driver, 'WebGUI::Shop::PayDriver', 'create creates WebGUI::Shop::PayDriver object');
|
||||||
|
|
||||||
my $dbData = $session->db->quickHashRef('select * from payment_Gateway where paymentGatewayId=?', [ $driver->getId ]);
|
my $dbData = $session->db->quickHashRef('select * from paymentGateway where paymentGatewayId=?', [ $driver->getId ]);
|
||||||
|
|
||||||
#diag ($driver->getId);
|
#diag ($driver->getId);
|
||||||
cmp_deeply (
|
cmp_deeply (
|
||||||
|
|
@ -245,7 +245,18 @@ cmp_deeply ($driver->options, $options, 'options accessor works');
|
||||||
#
|
#
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
is ($driver->getName, 'Payment Driver', 'getName returns the human readable name of this driver');
|
eval { WebGUI::Shop::PayDriver->getName(); };
|
||||||
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok ($e, 'WebGUI::Error::InvalidParam', 'getName requires a session object passed to it');
|
||||||
|
cmp_deeply (
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => 'Must provide a session variable',
|
||||||
|
),
|
||||||
|
'getName requires a session object passed to it',
|
||||||
|
);
|
||||||
|
|
||||||
|
is (WebGUI::Shop::PayDriver->getName($session), 'Payment Driver', 'getName returns the human readable name of this driver');
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
#
|
#
|
||||||
|
|
@ -403,7 +414,7 @@ my $newOptions = {
|
||||||
};
|
};
|
||||||
|
|
||||||
$driver->set($newOptions);
|
$driver->set($newOptions);
|
||||||
my $storedOptions = $session->db->quickScalar('select options from payment_Gateway where paymentGatewayId=?', [
|
my $storedOptions = $session->db->quickScalar('select options from paymentGateway where paymentGatewayId=?', [
|
||||||
$driver->getId,
|
$driver->getId,
|
||||||
]);
|
]);
|
||||||
cmp_deeply(
|
cmp_deeply(
|
||||||
|
|
@ -422,7 +433,7 @@ cmp_deeply(
|
||||||
|
|
||||||
$driver->delete;
|
$driver->delete;
|
||||||
|
|
||||||
my $count = $session->db->quickScalar('select count(*) from payment_Gateway where paymentGatewayId=?', [
|
my $count = $session->db->quickScalar('select count(*) from paymentGateway where paymentGatewayId=?', [
|
||||||
$driver->paymentGatewayId
|
$driver->paymentGatewayId
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
@ -436,5 +447,5 @@ undef $driver;
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Cleanup
|
# Cleanup
|
||||||
END {
|
END {
|
||||||
#$session->db->write('delete from payment_Gateway');
|
$session->db->write('delete from paymentGateway');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue