Conver the FlatRate shipping driver to use exceptions.
This commit is contained in:
parent
922830386d
commit
ea500fd1b2
2 changed files with 14 additions and 4 deletions
|
|
@ -2,7 +2,7 @@ package WebGUI::Shop::ShipDriver::FlatRate;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use base qw/WebGUI::Shop::ShipDriver/;
|
use base qw/WebGUI::Shop::ShipDriver/;
|
||||||
use Carp qw/croak/;
|
use WebGUI::Exception;
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
|
|
@ -58,7 +58,7 @@ the user.
|
||||||
sub definition {
|
sub definition {
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
my $session = shift;
|
my $session = shift;
|
||||||
croak "Definition requires a session object"
|
WebGUI::Error::InvalidParam->throw(error => q{Must provide a session variable})
|
||||||
unless ref $session eq 'WebGUI::Session';
|
unless ref $session eq 'WebGUI::Session';
|
||||||
my $definition = shift || [];
|
my $definition = shift || [];
|
||||||
my $i18n = WebGUI::International->new($session, 'ShipDriver_FlatRate');
|
my $i18n = WebGUI::International->new($session, 'ShipDriver_FlatRate');
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ my $session = WebGUI::Test->session;
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# Tests
|
# Tests
|
||||||
|
|
||||||
my $tests = 11;
|
my $tests = 12;
|
||||||
plan tests => 1 + $tests;
|
plan tests => 1 + $tests;
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
@ -52,9 +52,19 @@ skip 'Unable to load module WebGUI::Shop::ShipDriver::FlatRate', $tests unless $
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
my $definition;
|
my $definition;
|
||||||
|
my $e; ##Exception variable, used throughout the file
|
||||||
|
|
||||||
eval { $definition = WebGUI::Shop::ShipDriver::FlatRate->definition(); };
|
eval { $definition = WebGUI::Shop::ShipDriver::FlatRate->definition(); };
|
||||||
like ($@, qr/^Definition requires a session object/, 'definition croaks without a session object');
|
$e = Exception::Class->caught();
|
||||||
|
isa_ok($e, 'WebGUI::Error::InvalidParam', 'definition takes an exception to not giving it a session variable');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => 'Must provide a session variable',
|
||||||
|
),
|
||||||
|
'definition: requires a session variable',
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
$definition = WebGUI::Shop::ShipDriver::FlatRate->definition($session);
|
$definition = WebGUI::Shop::ShipDriver::FlatRate->definition($session);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue