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

(-)a/t/db_dependent/ILSDI_Services.t (-3 / +68 lines)
Lines 19-29 use Modern::Perl; Link Here
19
19
20
use CGI qw ( -utf8 );
20
use CGI qw ( -utf8 );
21
21
22
use Test::More tests => 10;
22
use Test::More tests => 11;
23
use Test::MockModule;
23
use Test::MockModule;
24
use t::lib::Mocks;
24
use t::lib::Mocks;
25
use t::lib::TestBuilder;
25
use t::lib::TestBuilder;
26
use t::lib::Dates;
26
use t::lib::Dates;
27
use XML::LibXML;
27
28
28
use C4::Items qw( ModItemTransfer );
29
use C4::Items qw( ModItemTransfer );
29
use C4::Circulation qw( AddIssue );
30
use C4::Circulation qw( AddIssue );
Lines 32-38 use Koha::AuthUtils; Link Here
32
use Koha::DateUtils qw( dt_from_string );
33
use Koha::DateUtils qw( dt_from_string );
33
34
34
BEGIN {
35
BEGIN {
35
    use_ok('C4::ILSDI::Services', qw( AuthenticatePatron GetPatronInfo LookupPatron HoldTitle HoldItem GetRecords RenewLoan ));
36
    use_ok('C4::ILSDI::Services', qw( AuthenticatePatron GetPatronInfo LookupPatron HoldTitle HoldItem GetRecords RenewLoan GetAvailability ));
36
}
37
}
37
38
38
my $schema  = Koha::Database->schema;
39
my $schema  = Koha::Database->schema;
Lines 788-790 subtest 'GetPatronInfo paginated loans' => sub { Link Here
788
789
789
    $schema->storage->txn_rollback;
790
    $schema->storage->txn_rollback;
790
};
791
};
791
- 
792
793
subtest 'GetAvailability itemcallnumber' => sub {
794
    plan tests => 4;
795
    $schema->storage->txn_begin;
796
797
    t::lib::Mocks::mock_preference( 'ILS-DI', 1 );
798
799
    my $item1 = $builder->build_sample_item(
800
        {
801
            itemcallnumber => "callnumber",
802
        }
803
    );
804
805
    my $item2 = $builder->build_sample_item(
806
        {
807
        }
808
    );
809
810
    # Build the query
811
    my $cgi = CGI->new;
812
    $cgi->param(service => 'GetAvailability');
813
    $cgi->param(id => $item1->itemnumber);
814
    $cgi->param(id_type => 'item');
815
816
    # Output of GetAvailability is a string containing XML
817
    my $reply = C4::ILSDI::Services::GetAvailability($cgi);
818
    
819
    # Parse the output and get info
820
    my $result_XML = XML::LibXML->load_xml(string => $reply);
821
    my $reply_callnumber = $result_XML->findnodes('//dlf:itemcallnumber')->to_literal();
822
823
    # Test the output
824
    is($reply_callnumber, $item1->itemcallnumber, "GetAvailability item has an itemcallnumber tag");
825
826
    $cgi = CGI->new;
827
    $cgi->param(service => 'GetAvailability');
828
    $cgi->param(id => $item2->itemnumber);
829
    $cgi->param(id_type => 'item');
830
    $reply = C4::ILSDI::Services::GetAvailability($cgi);
831
    $result_XML = XML::LibXML->load_xml(string => $reply);
832
    $reply_callnumber = $result_XML->findnodes('//dlf:itemcallnumber')->to_literal();
833
    is($reply_callnumber, '', "As expected, GetAvailability item has no itemcallnumber tag");
834
835
    $cgi = CGI->new;
836
    $cgi->param(service => 'GetAvailability');
837
    $cgi->param(id => $item1->biblionumber);
838
    $cgi->param(id_type => 'biblio');
839
    $reply = C4::ILSDI::Services::GetAvailability($cgi);
840
    $result_XML = XML::LibXML->load_xml(string => $reply);
841
    $reply_callnumber = $result_XML->findnodes('//dlf:itemcallnumber')->to_literal();
842
    is($reply_callnumber, $item1->itemcallnumber, "GetAvailability biblio has an itemcallnumber tag");
843
844
    $cgi = CGI->new;
845
    $cgi->param(service => 'GetAvailability');
846
    $cgi->param(id => $item2->biblionumber);
847
    $cgi->param(id_type => 'biblio');
848
    $reply = C4::ILSDI::Services::GetAvailability($cgi);
849
    $result_XML = XML::LibXML->load_xml(string => $reply);
850
    $reply_callnumber = $result_XML->findnodes('//dlf:itemcallnumber')->to_literal();
851
    is($reply_callnumber, '', "As expected, GetAvailability biblio has no itemcallnumber tag");
852
853
    $schema->storage->txn_rollback;
854
855
    
856
};

Return to bug 28238