Bug 28636: Add POD to t:lib::Mocks
authorTomas Cohen Arazi <tomascohen@theke.io>
Tue, 22 Jun 2021 20:32:20 +0000 (17:32 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 12 Jul 2021 13:47:34 +0000 (15:47 +0200)
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 <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
t/lib/Mocks.pm

index 17d54f1..a240464 100644 (file)
@@ -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 <http://www.gnu.org/licenses>.
+
 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<value>.
+
+=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<patron> 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 ) = @_;