]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/perlmods/t/14-OpenILS-Utils.t
qp_fix: number upgrade scripts, disable QP unit tests needing more attention
[working/Evergreen.git] / Open-ILS / src / perlmods / t / 14-OpenILS-Utils.t
1 #!perl -T
2
3 use Test::More tests => 29;
4
5 use_ok( 'OpenILS::Utils::Configure' );
6 use_ok( 'OpenILS::Utils::Cronscript' );
7 use_ok( 'OpenILS::Utils::CStoreEditor' );
8 use_ok( 'OpenILS::Utils::Editor' );
9 use_ok( 'OpenILS::Utils::Fieldmapper' );
10 use_ok( 'OpenILS::Utils::ISBN' );
11 use_ok( 'OpenILS::Utils::Lockfile' );
12 use_ok( 'OpenILS::Utils::MFHDParser' );
13 use_ok( 'OpenILS::Utils::MFHD' );
14 use_ok( 'OpenILS::Utils::ModsParser' );
15 use_ok( 'OpenILS::Utils::Normalize' );
16 use_ok( 'OpenILS::Utils::OfflineStore' );
17 use_ok( 'OpenILS::Utils::Penalty' );
18 use_ok( 'OpenILS::Utils::PermitHold' );
19 use_ok( 'OpenILS::Utils::RemoteAccount' );
20 use_ok( 'OpenILS::Utils::ScriptRunner' );
21 use_ok( 'OpenILS::Utils::SpiderMonkey' );
22 use_ok( 'OpenILS::Utils::ZClient' );
23 use_ok( 'OpenILS::Utils::EDIReader' );
24
25 # LP 800269 - Test MFHD holdings for records that only contain a caption field
26 my $co_marc = MARC::Record->new();
27 $co_marc->append_fields(
28     MARC::Field->new('853','','',
29         '8' => '1',
30         'a' => 'v.',
31         'b' => '[no.]',
32     )
33 );
34 my $co_mfhd = MFHD->new($co_marc);
35
36 my @comp_holdings = $co_mfhd->get_compressed_holdings($co_mfhd->field('853'));
37 is(@comp_holdings, 0, "Compressed holdings for an MFHD record that only has a caption");
38
39 my @decomp_holdings = $co_mfhd->get_decompressed_holdings($co_mfhd->field('853'));
40 is(@decomp_holdings, 0, "Decompressed holdings for an MFHD record that only has a caption");
41
42 my $apostring = OpenILS::Utils::Normalize::naco_normalize("it's time");
43 is($apostring, "its time", "naco_normalize: strip apostrophes");
44
45 my $apos = OpenILS::Utils::Normalize::search_normalize("it's time");
46 is($apos, "it s time", "search_normalize: replace apostrophes with space");
47
48 my $raw_marcxml = <<RAWMARC;
49 <?xml version="1.0" encoding="utf-8"?>
50 <record>
51   <leader>01614nmm a22003975u 4500</leader>
52   <controlfield tag="001">978-0-387-35767-6</controlfield>
53   <controlfield tag="003">Springer</controlfield>
54   <controlfield tag="005">20071022150035.8</controlfield>
55   <controlfield tag="007">cr nn 008mamaa</controlfield>
56   <controlfield tag="008">071022s2008    xx         j        eng d</controlfield>
57   <datafield tag="020" ind1=" " ind2=" ">
58     <subfield code="a">9780387685748</subfield>
59   </datafield>
60   <datafield tag="100" ind1="1" ind2=" ">
61     <subfield code="a">Neteler, Markus.</subfield>
62   </datafield>
63   <datafield tag="245" ind1="1" ind2="0">
64     <subfield code="a">Open Source GIS</subfield>
65     <subfield code="h">[electronic resource] :</subfield>
66     <subfield code="b">A GRASS GIS Approach /</subfield>
67     <subfield code="c">edited by Markus Neteler, Helena Mitasova.</subfield>
68   </datafield>
69   <datafield tag="250" ind1=" " ind2=" ">
70     <subfield code="a">Third Edition.</subfield>
71   </datafield>
72   <datafield tag="260" ind1=" " ind2=" ">
73     <subfield code="a">Boston, MA :</subfield>
74     <subfield code="b">Springer Science+Business Media, LLC,</subfield>
75     <subfield code="c">2008.</subfield>
76   </datafield>
77 </record>
78 RAWMARC
79 my $exp_xml = '<record><leader>01614nmm a22003975u 4500</leader><controlfield tag="001">978-0-387-35767-6</controlfield><controlfield tag="003">Springer</controlfield><controlfield tag="005">20071022150035.8</controlfield><controlfield tag="007">cr nn 008mamaa</controlfield><controlfield tag="008">071022s2008    xx         j        eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780387685748</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Neteler, Markus.</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Open Source GIS</subfield><subfield code="h">[electronic resource] :</subfield><subfield code="b">A GRASS GIS Approach /</subfield><subfield code="c">edited by Markus Neteler, Helena Mitasova.</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">Third Edition.</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">Boston, MA :</subfield><subfield code="b">Springer Science+Business Media, LLC,</subfield><subfield code="c">2008.</subfield></datafield></record>';
80 my $clean_xml = OpenILS::Utils::Normalize::clean_marc($raw_marcxml);
81 is($clean_xml, $exp_xml, "clean_marc: header and space normalization");
82
83 is(OpenILS::Utils::Normalize::clean_marc('èöçÇÈÀ'), '&#xE8;&#xF6;&#xE7;&#xC7;&#xC8;&#xC0;', 'clean_marc: diacritics');
84
85 my $edi_invoice = "UNA:+.? 'UNB+UNOC:3+1556150:31B+123EVER:31B+120926:1621+4'UNH+11+INVOIC:D:96A:UN'BGM+380+5TST084026+9'DTM+137:20120924:102'RFF+ON:24'NAD+BY+123EVER 0001::91'NAD+SU+1691503::31B'CUX+2:USD:4'LIN+1++9780446360272'QTY+47:5'MOA+146:4.5:USD:10'MOA+203:14.65'PRI+AAF:2.93:DI:NTP'RFF+LI:24/102'LIN+2++9780446357197'QTY+47:8'MOA+146:6.5:USD:10'MOA+203:33.84'PRI+AAF:4.23:DI:NTP'RFF+LI:24/100'UNS+S'MOA+86:66.18'ALC+C++++DL'MOA+8:2'ALC+C++++CA'MOA+131:12.3'ALC+C++++TX'MOA+8:3.39'UNT+28+11'UNH+12+INVOIC:D:96A:UN'BGM+380+5TST084027+9'DTM+137:20120924:102'RFF+ON:26'NAD+BY+123EVER 0001::91'NAD+SU+1691503::31B'CUX+2:USD:4'LIN+1++9780446360272'QTY+47:1'MOA+146:4.5:USD:10'MOA+203:4.05'PRI+AAF:4.05:DI:NTP'RFF+LI:26/106'LIN+2++9780446350105'QTY+47:3'MOA+146:6.99:USD:10'MOA+203:14.67'PRI+AAF:4.89:DI:NTP'RFF+LI:26/105'UNS+S'MOA+86:25.03'ALC+C++++DL'MOA+8:2'ALC+C++++CA'MOA+131:3'ALC+C++++TX'MOA+8:1.31'UNT+28+12'UNZ+4+4'";
86
87 my $edi_msgs = OpenILS::Utils::EDIReader->new->read($edi_invoice);
88
89 is($edi_msgs->[0]->{message_type}, 'INVOIC', 'edi reader: message type');
90 is($edi_msgs->[0]->{purchase_order}, '24', 'edi reader: PO number');
91 is($edi_msgs->[1]->{invoice_ident}, '5TST084027', 'edi reader: invoice ident');
92 is(scalar(@{$edi_msgs->[1]->{lineitems}}), '2', 'edi reader: lineitem count');
93