Add a field to the InvalidParam exception.
Use it in Ship.pm for documenting bad requested classes, and test its use.
This commit is contained in:
parent
d780700013
commit
aab533623e
3 changed files with 8 additions and 2 deletions
|
|
@ -28,6 +28,7 @@ use Exception::Class (
|
|||
'WebGUI::Error::InvalidParam' => {
|
||||
isa => 'WebGUI::Error',
|
||||
description => "Expected to get a param we didn't get.",
|
||||
fields => ["param"],
|
||||
},
|
||||
'WebGUI::Error::ObjectNotFound' => {
|
||||
isa => 'WebGUI::Error',
|
||||
|
|
@ -120,6 +121,10 @@ The object type we got.
|
|||
|
||||
Used when an invalid parameter is passed into a subroutine.
|
||||
|
||||
=head3 param
|
||||
|
||||
Used to return the bad parameter, if present.
|
||||
|
||||
=head2 WebGUI::Error::ObjectNotFound
|
||||
|
||||
Used when an object is trying to be retrieved, but does not exist. ISA WebGUI::Error.
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ sub create {
|
|||
my $requestedClass = shift;
|
||||
WebGUI::Error::InvalidParam->throw(error => q{Must provide a class to create an object})
|
||||
unless defined $requestedClass;
|
||||
WebGUI::Error::InvalidParam->throw(error => qq{The requested class $requestedClass is not enabled in your WebGUI configuration file})
|
||||
WebGUI::Error::InvalidParam->throw(error => q{The requested class is not enabled in your WebGUI configuration file}, param => $requestedClass)
|
||||
unless isIn($requestedClass, @{ WebGUI::Shop::Ship->getDrivers($session) } );
|
||||
my $options = shift;
|
||||
WebGUI::Error::InvalidParam->throw(error => q{You must pass a hashref of options to create a new ShipDriver object})
|
||||
|
|
|
|||
|
|
@ -109,7 +109,8 @@ isa_ok($e, 'WebGUI::Error::InvalidParam', 'create croaks without a configured cl
|
|||
cmp_deeply(
|
||||
$e,
|
||||
methods(
|
||||
error => 'The requested class WebGUI::Shop::ShipDriver::FreeShipping is not enabled in your WebGUI configuration file',
|
||||
error => 'The requested class is not enabled in your WebGUI configuration file',
|
||||
param => 'WebGUI::Shop::ShipDriver::FreeShipping',
|
||||
),
|
||||
'create croaks without a configured class',
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue