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

(-)a/t/db_dependent/Koha/Plugins/Holds_hooks.t (+82 lines)
Line 0 Link Here
1
#!/usr/bin/perl
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, see <http://www.gnu.org/licenses>.
16
17
use Modern::Perl;
18
19
use Test::More tests => 4;
20
use Test::MockModule;
21
use Test::Warn;
22
23
use File::Basename;
24
25
use C4::Reserves qw(AddReserve);
26
27
use t::lib::Mocks;
28
use t::lib::TestBuilder;
29
30
BEGIN {
31
    # Mock pluginsdir before loading Plugins module
32
    my $path = dirname(__FILE__) . '/../../../lib';
33
    t::lib::Mocks::mock_config( 'pluginsdir', $path );
34
35
    use_ok('Koha::Plugins');
36
    use_ok('Koha::Plugins::Handler');
37
    use_ok('Koha::Plugin::Test');
38
}
39
40
my $schema  = Koha::Database->new->schema;
41
my $builder = t::lib::TestBuilder->new;
42
43
t::lib::Mocks::mock_config( 'enable_plugins', 1 );
44
45
subtest 'after_hold_create() hook tests' => sub {
46
47
    plan tests => 1;
48
49
    $schema->storage->txn_begin;
50
51
    my $plugins = Koha::Plugins->new;
52
    $plugins->InstallPlugins;
53
54
    my $plugin = Koha::Plugin::Test->new->enable;
55
56
    my $patron = $builder->build_object( { class => 'Koha::Patrons' } );
57
58
    t::lib::Mocks::mock_userenv(
59
        {
60
            patron     => $patron,
61
            branchcode => $patron->branchcode
62
        }
63
    );
64
65
    # Avoid testing useless warnings
66
    my $test_plugin = Test::MockModule->new('Koha::Plugin::Test');
67
    $test_plugin->mock( 'after_item_action',   undef );
68
    $test_plugin->mock( 'after_biblio_action', undef );
69
70
    my $biblio = $builder->build_sample_biblio();
71
    my $item_1 = $builder->build_sample_item( { biblionumber => $biblio->biblionumber } );
72
73
    warning_like { AddReserve({
74
                        branchcode     => $patron->branchcode,
75
                        borrowernumber => $patron->borrowernumber,
76
                        biblionumber   => $item_1->biblionumber }); }
77
        qr/after_hold_create called with parameter Koha::Hold/,
78
          'AddReserve calls the after_hold_create hook';
79
80
    $schema->storage->txn_rollback;
81
    Koha::Plugins::Methods->delete;
82
};
(-)a/t/lib/Koha/Plugin/Test.pm (-2 / +2 lines)
Lines 128-134 sub api_namespace { Link Here
128
}
128
}
129
129
130
sub after_hold_create {
130
sub after_hold_create {
131
    return "Koha::Plugin::Test::after_hold_create";
131
    my ( $self, $param ) = @_;
132
    Koha::Exceptions::Exception->throw("after_hold_create called with parameter " . ref($param) );
132
}
133
}
133
134
134
sub after_biblio_action {
135
sub after_biblio_action {
135
- 

Return to bug 24031