View | Details | Raw Unified | Return to bug 21478
Collapse All | Expand All

(-)a/Koha/Exceptions/Hold.pm (+69 lines)
Line 0 Link Here
1
package Koha::Exceptions::Hold;
2
3
# This file is part of Koha.
4
#
5
# Koha is free software; you can redistribute it and/or modify it under the
6
# terms of the GNU General Public License as published by the Free Software
7
# Foundation; either version 3 of the License, or (at your option) any later
8
# version.
9
#
10
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
11
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License along
15
# with Koha; if not, write to the Free Software Foundation, Inc.,
16
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
18
use Modern::Perl;
19
20
use Koha::Exceptions::Exception;
21
22
use Exception::Class (
23
    'Koha::Exceptions::Hold' => {
24
        isa => 'Koha::Exceptions::Exception',
25
    },
26
    'Koha::Exceptions::Hold::CannotSuspendFound' => {
27
        isa         => 'Koha::Exceptions::Hold',
28
        description => "Found holds cannot be suspended",
29
        fields      =>  ['status']
30
    }
31
);
32
33
sub full_message {
34
    my $self = shift;
35
36
    my $msg = $self->message;
37
38
    unless ( $msg) {
39
        if ( $self->isa('Koha::Exceptions::Hold::CannotSuspendFound') ) {
40
            $msg = sprintf("Found hold cannot be suspended. Status=%s", $self->status );
41
        }
42
    }
43
44
    return $msg;
45
}
46
47
=head1 NAME
48
49
Koha::Exceptions::Hold - Base class for Hold exceptions
50
51
=head1 Exceptions
52
53
=head2 Koha::Exceptions::Hold
54
55
Generic Hold exception
56
57
=head2 Koha::Exceptions::Hold::CannotSuspendFound
58
59
Exception to be used when suspension is requested on a found hold.
60
61
=head1 Class methods
62
63
=head2 full_message
64
65
Overloaded method for exception stringifying.
66
67
=cut
68
69
1;
(-)a/t/Koha/Exceptions.t (-2 / +22 lines)
Lines 17-25 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 2;
20
use Test::More tests => 3;
21
use Test::Exception;
21
use Test::Exception;
22
22
23
subtest 'Koha::Exceptions::Hold tests' => sub {
24
25
    plan tests => 5;
26
27
    use_ok('Koha::Exceptions::Hold');
28
29
    throws_ok
30
        { Koha::Exceptions::Hold::CannotSuspendFound->throw( status => 'W' ); }
31
        'Koha::Exceptions::Hold::CannotSuspendFound',
32
        'Exception is thrown :-D';
33
34
    # stringify the exception
35
    is( "$@", 'Found hold cannot be suspended. Status=W', 'Exception stringified correctly' );
36
37
    throws_ok
38
        { Koha::Exceptions::Hold::CannotSuspendFound->throw( "Manual message exception" ) }
39
        'Koha::Exceptions::Hold::CannotSuspendFound',
40
        'Exception is thrown :-D';
41
    is( "$@", 'Manual message exception', 'Exception not stringified if manually passed' );
42
};
43
23
subtest 'Koha::Exceptions::Object::FKConstraint tests' => sub {
44
subtest 'Koha::Exceptions::Object::FKConstraint tests' => sub {
24
45
25
    plan tests => 9;
46
    plan tests => 9;
26
- 

Return to bug 21478