@@ -, +, @@ --- t/db_dependent/XSLT.t | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 t/db_dependent/XSLT.t --- a/t/db_dependent/XSLT.t +++ a/t/db_dependent/XSLT.t @@ -0,0 +1,94 @@ +#!/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 . + +use Modern::Perl; + +use Test::More tests => 2; +use Test::Warn; +use t::lib::TestBuilder; + + +BEGIN { + use_ok('C4::XSLT'); +} + +my $schema = Koha::Database->new->schema; +my $builder = t::lib::TestBuilder->new; + +$schema->storage->txn_begin; + +subtest 'buildKohaItemsNamespace status tests' => sub { + plan tests => 10; + my $item = $builder->build_sample_item({ + }); + + my $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/available<\/status>/,"Item is available when no other status applied"); + + $item->notforloan(-1)->store; + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/On order<\/status>/,"On order if negative notforloan value"); + + $item->notforloan(1)->store; + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/reference<\/status>/,"reference if positive notforloan value"); + + $item->onloan('2001-01-01')->store; + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/Checked out<\/status>/,"Checked out status takes precedence over Not for loan"); + + $item->withdrawn(1)->store; + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/Withdrawn<\/status>/,"Withdrawn status takes precedence over Checked out"); + + $item->itemlost(1)->store; + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/Lost<\/status>/,"Lost status takes precedence over Withdrawn"); + + $item->damaged(1)->store; + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/Damaged<\/status>/,"Damaged status takes precedence over Lost"); + + $builder->build({ source => "Branchtransfer", value => { + itemnumber => $item->itemnumber, + datearrived => undef, + } + }); + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/In transit<\/status>/,"In-transit status takes precedence over Damaged"); + + my $hold = $builder->build_object({ class => 'Koha::Holds', value => { + biblionumber => $item->biblionumber, + itemnumber => $item->itemnumber, + found => 'W', + priority => 0, + } + }); + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/Waiting<\/status>/,"Waiting status takes precedence over In transit"); + + $builder->build({ source => "TmpHoldsqueue", value => { + itemnumber => $item->itemnumber + } + }); + $xml = C4::XSLT::buildKohaItemsNamespace( $item->biblionumber,[]); + like($xml,qr/Pending hold<\/status>/,"Pending status takes precedence over all"); + + +}; + +$schema->storage->txn_rollback; --