From 0f7330aa42fcdc404185d4f16e20c95101fb1fde Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 22 Jun 2021 17:32:20 -0300 Subject: [PATCH] Bug 28636: Add POD to t:lib::Mocks There's no POD. This patch adds it. I wrote it as part of bug 28615 but then it took another direction, so submitting here. Signed-off-by: Tomas Cohen Arazi --- t/lib/Mocks.pm | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/t/lib/Mocks.pm b/t/lib/Mocks.pm index 17d54f1a53..a2404647c0 100644 --- a/t/lib/Mocks.pm +++ b/t/lib/Mocks.pm @@ -1,11 +1,46 @@ package t::lib::Mocks; +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + use Modern::Perl; use C4::Context; use Test::MockModule; +use Test::MockObject; + +=head1 NAME + +t::lib::Mocks - A library to mock things for testing + +=head1 API + +=head2 Methods + +=cut my %configs; + +=head3 mock_config + + t::lib::Mocks::mock_config( $config_entry, $value ); + +Mock the configuration I<$config_entry> with the specified I<$value>. + +=cut + sub mock_config { my $context = Test::MockModule->new('C4::Context'); my ( $conf, $value ) = @_; @@ -22,6 +57,15 @@ sub mock_config { } my %preferences; + +=head3 mock_preference + + t::lib::Mocks::mock_preference( $preference, $value ); + +Mock the I<$preference> with the specified I. + +=cut + sub mock_preference { my ( $pref, $value ) = @_; @@ -40,6 +84,34 @@ sub mock_preference { }); } +=head3 mock_userenv + + t::lib::Mocks::mock_userenv( + { + [ patron => $patron, + borrowernumber => $borrowernumber, + userid => $userid, + cardnumber => $cardnumber, + firstname => $firstname, + surname => $surname, + branchcode => $branchcode, + branchname => $branchname, + flags => $flags, + emailaddress => $emailaddress, + desk_id => $desk_id, + desk_name => $desk_name, + register_id => $register_id, + register_name => $register_name, ] + } + ); + +Mock userenv in the context of tests. A I param is usually expected, but +some other session attributes might be passed as well, that will override the patron's. + +Also, some sane defaults are set if no parameters are passed. + +=cut + sub mock_userenv { my ( $params ) = @_; -- 2.32.0