Bug 20750: Add unit tests
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Bug 20750: (follow-up) Remove status_alias test
This test is now redundant.
We can't test the return of $req->status_alias against the value of
$req->{status_alias} any more since we've overloaded the status_alias
method and it won't always return the value of the object's property.
We test the functionality of the status_alias method elsewhere so we're
still covered.
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
parent
79d64a37a0
commit
58b81110dc
|
|
@ -0,0 +1,118 @@
|
|||
|
||||
#!/usr/bin/perl
|
||||
|
||||
# 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 Koha::Database;
|
||||
|
||||
use Test::More tests => 2;
|
||||
use Test::MockModule;
|
||||
use Test::MockObject;
|
||||
use t::lib::Mocks;
|
||||
|
||||
my $schema = Koha::Database->new->schema;
|
||||
|
||||
# A mock response from C4::Log::GetLogs()
|
||||
my $logs = [
|
||||
{
|
||||
info => '{"log_origin": "core"}',
|
||||
action => 'STATUS_CHANGE',
|
||||
timestamp => '2018-10-02 11:12:22'
|
||||
},
|
||||
{
|
||||
info => '{"log_origin": "core"}',
|
||||
action => 'STATUS_CHANGE',
|
||||
timestamp => '2018-10-02 11:12:12'
|
||||
},
|
||||
{
|
||||
info => '{"log_origin": "core"}',
|
||||
action => 'STATUS_CHANGE',
|
||||
timestamp => '2018-10-02 11:12:32'
|
||||
}
|
||||
];
|
||||
# Mock the modules we use
|
||||
my $c4_log = Test::MockModule->new('C4::Log');
|
||||
$c4_log->mock('logaction', sub { 1 });
|
||||
$c4_log->mock('GetLogs', sub { return $logs; });
|
||||
my $c4_tpl = Test::MockModule->new('C4::Templates');
|
||||
$c4_tpl->mock('_get_template_file',
|
||||
sub { return ('htdocs', 'theme', 'lang', 'base/'); });
|
||||
|
||||
use_ok('Koha::Illrequest::Logger');
|
||||
|
||||
subtest 'Basics' => sub {
|
||||
|
||||
plan tests => 7;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
my $logger = Koha::Illrequest::Logger->new;
|
||||
|
||||
# new()
|
||||
#
|
||||
ok( defined($logger), 'new() returned something' );
|
||||
ok( $logger->isa('Koha::Illrequest::Logger'),
|
||||
'new() returns the correct object' );
|
||||
|
||||
# This is an incomplete data hashref, we use it to
|
||||
# test validation of the data before logging
|
||||
my $log_obj = {
|
||||
modulename => 'modulename',
|
||||
actionname => 'actionname',
|
||||
infos => 'infos'
|
||||
};
|
||||
|
||||
# log_something()
|
||||
#
|
||||
# Do we only log when the pref is set (currently unset)
|
||||
is($logger->log_something(), '',
|
||||
'logaction() not being called without pref being set');
|
||||
|
||||
# Set the pref
|
||||
t::lib::Mocks::mock_preference( 'IllLog', 1 );
|
||||
# We should not log without all the required data, we are still
|
||||
# using the incomplete hashref
|
||||
is($logger->log_something(), '',
|
||||
'logaction() being called when data is incomplete');
|
||||
|
||||
# Fix the data hashref, then test that logging occurs
|
||||
$log_obj->{objectnumber} = 'objectnumber';
|
||||
is($logger->log_something($log_obj), 1,
|
||||
'logaction() being called when pref is set and data is complete');
|
||||
|
||||
# log_maybe()
|
||||
#
|
||||
is($logger->log_maybe({}, {}), '',
|
||||
'log_maybe() does not log with incomplete data');
|
||||
|
||||
# get_log_template()
|
||||
#
|
||||
is(
|
||||
$logger->get_log_template({
|
||||
request => {},
|
||||
origin => 'core',
|
||||
action => 'STATUS_CHANGE'
|
||||
}),
|
||||
'base/status_change.tt',
|
||||
'get_log_template() fetches correct core template'
|
||||
);
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
||||
1;
|
||||
|
|
@ -39,7 +39,7 @@ use_ok('Koha::Illrequests');
|
|||
|
||||
subtest 'Basic object tests' => sub {
|
||||
|
||||
plan tests => 25;
|
||||
plan tests => 24;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
|
|
@ -62,8 +62,6 @@ subtest 'Basic object tests' => sub {
|
|||
"Branchcode getter works.");
|
||||
is($illrq_obj->status, $illrq->{status},
|
||||
"Status getter works.");
|
||||
is($illrq_obj->status_alias, $illrq->{status_alias},
|
||||
"Status_alias getter works.");
|
||||
is($illrq_obj->placed, $illrq->{placed},
|
||||
"Placed getter works.");
|
||||
is($illrq_obj->replied, $illrq->{replied},
|
||||
|
|
|
|||
Loading…
Reference in New Issue