Bug 27833: (follow-up) Add InvalidType exception
Working on bug 27857 showed we needed one more exception, for when the passed attribute type is invalid. This patch adds the Koha::Exceptions::Patron::Attribute::InvalidType exception. It adds a format for stringifying it, and tests are added. The previous exceptions tests lacked one case, so I add them on this patch as well. To test: 1. Apply this patch 2. Run: $ kshell k$ prove tt/Koha/Exceptions.t => SUCCESS: Tests pass! 3. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
35aefaa11c
commit
577a405407
|
|
@ -7,6 +7,11 @@ use Exception::Class (
|
|||
'Koha::Exceptions::Patron::Attribute' => {
|
||||
description => 'Something went wrong'
|
||||
},
|
||||
'Koha::Exceptions::Patron::Attribute::InvalidType' => {
|
||||
isa => 'Koha::Exceptions::Patron::Attribute',
|
||||
description => "the passed type is invalid",
|
||||
fields => [ "type" ]
|
||||
},
|
||||
'Koha::Exceptions::Patron::Attribute::NonRepeatable' => {
|
||||
isa => 'Koha::Exceptions::Patron::Attribute',
|
||||
description => "repeatable not set for attribute type and tried to add a new attribute for the same code",
|
||||
|
|
@ -39,6 +44,12 @@ sub full_message {
|
|||
$self->attribute->attribute
|
||||
);
|
||||
}
|
||||
elsif ( $self->isa('Koha::Exceptions::Patron::Attribute::InvalidType') ) {
|
||||
$msg = sprintf(
|
||||
"Tried to use an invalid attribute type. type=%s",
|
||||
$self->type
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $msg;
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ subtest 'Koha::Exceptions::Object::NotInstantiated tests' => sub {
|
|||
|
||||
subtest 'Koha::Exceptions::Patron::Attribute::* tests' => sub {
|
||||
|
||||
plan tests => 5;
|
||||
plan tests => 13;
|
||||
|
||||
use_ok("Koha::Exceptions::Patron::Attribute");
|
||||
|
||||
|
|
@ -218,11 +218,70 @@ subtest 'Koha::Exceptions::Patron::Attribute::* tests' => sub {
|
|||
'Exception is thrown :-D';
|
||||
|
||||
# stringify the exception
|
||||
is( "$@", "Tried to add more than one non-repeatable attributes. code=$code attribute=$attribute", 'Exception stringified correctly' );
|
||||
is(
|
||||
"$@",
|
||||
"Tried to add more than one non-repeatable attributes. code=$code attribute=$attribute",
|
||||
'Exception stringified correctly'
|
||||
);
|
||||
|
||||
throws_ok
|
||||
{ Koha::Exceptions::Patron::Attribute::NonRepeatable->throw( "Manual message exception" ) }
|
||||
'Koha::Exceptions::Patron::Attribute::NonRepeatable',
|
||||
'Exception is thrown :-D';
|
||||
is( "$@", 'Manual message exception', 'Exception not stringified if manually passed' );
|
||||
|
||||
is(
|
||||
"$@",
|
||||
'Manual message exception',
|
||||
'Exception not stringified if manually passed'
|
||||
);
|
||||
|
||||
throws_ok
|
||||
{ Koha::Exceptions::Patron::Attribute::UniqueIDConstraint->throw(
|
||||
attribute => $mocked_attribute ); }
|
||||
'Koha::Exceptions::Patron::Attribute::UniqueIDConstraint',
|
||||
'Exception is thrown :-D';
|
||||
|
||||
# stringify the exception
|
||||
is(
|
||||
"$@",
|
||||
"Your action breaks a unique constraint on the attribute. code=$code attribute=$attribute",
|
||||
'Exception stringified correctly'
|
||||
);
|
||||
|
||||
throws_ok
|
||||
{ Koha::Exceptions::Patron::Attribute::UniqueIDConstraint->throw( "Manual message exception" ) }
|
||||
'Koha::Exceptions::Patron::Attribute::UniqueIDConstraint',
|
||||
'Exception is thrown :-D';
|
||||
|
||||
is(
|
||||
"$@",
|
||||
'Manual message exception',
|
||||
'Exception not stringified if manually passed'
|
||||
);
|
||||
|
||||
my $type = "SOME_TYPE";
|
||||
|
||||
throws_ok
|
||||
{ Koha::Exceptions::Patron::Attribute::InvalidType->throw(
|
||||
type => $type ); }
|
||||
'Koha::Exceptions::Patron::Attribute::InvalidType',
|
||||
'Exception is thrown :-D';
|
||||
|
||||
# stringify the exception
|
||||
is(
|
||||
"$@",
|
||||
"Tried to use an invalid attribute type. type=$type",
|
||||
'Exception stringified correctly'
|
||||
);
|
||||
|
||||
throws_ok
|
||||
{ Koha::Exceptions::Patron::Attribute::InvalidType->throw( "Manual message exception" ) }
|
||||
'Koha::Exceptions::Patron::Attribute::InvalidType',
|
||||
'Exception is thrown :-D';
|
||||
|
||||
is(
|
||||
"$@",
|
||||
'Manual message exception',
|
||||
'Exception not stringified if manually passed'
|
||||
);
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue