Bug 21133: Fix use statements order
[koha.git] / t / db_dependent / Record.t
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4
5 use Test::More tests => 14;
6 use MARC::Record;
7
8 use t::lib::Mocks;
9 use C4::Context;
10
11 BEGIN {
12         use_ok('C4::Record');
13 }
14
15 my $dbh = C4::Context->dbh;
16 # Start transaction
17 $dbh->{AutoCommit} = 0;
18 $dbh->{RaiseError} = 1;
19
20 t::lib::Mocks::mock_preference( "BibtexExportAdditionalFields", q{} );
21
22 my @marcarray=marc2marc;
23 is ($marcarray[0],"Feature not yet implemented\n","error works");
24
25 my $marc=new MARC::Record;
26 my $marcxml=marc2marcxml($marc);
27 my $testxml=qq(<?xml version="1.0" encoding="UTF-8"?>
28 <record
29     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
30     xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
31     xmlns="http://www.loc.gov/MARC21/slim">
32
33   <leader>         a              </leader>
34 </record>
35 );
36 is ($marcxml, $testxml, "testing marc2xml");
37
38 my $rawmarc=$marc->as_usmarc;
39 $marcxml=marc2marcxml($rawmarc);
40 $testxml=qq(<?xml version="1.0" encoding="UTF-8"?>
41 <record
42     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
43     xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
44     xmlns="http://www.loc.gov/MARC21/slim">
45
46   <leader>00026    a2200025   4500</leader>
47 </record>
48 );
49 is ($marcxml, $testxml, "testing marc2xml");
50
51 my $marcconvert=marcxml2marc($marcxml);
52 is ($marcconvert->as_xml,$marc->as_xml, "testing xml2marc");
53
54 my $marcsrwdc=marc2dcxml( $marc, undef, undef, "srwdc" );
55 my $test2xml=qq(<?xml version="1.0" encoding="UTF-8"?>
56 <srw_dc:dc xmlns:srw_dc="info:srw/schema/1/dc-schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="info:srw/schema/1/dc-schema http://www.loc.gov/z3950/agency/zing/srw/dc-schema.xsd">
57   <type xmlns="http://purl.org/dc/elements/1.1/"/>
58 </srw_dc:dc>
59 );
60
61 is ($marcsrwdc, $test2xml, "testing SRWDC Metadata");
62
63 my $marcoaidc=marc2dcxml( $marc, undef, undef, "oaidc" );
64 my $test3xml=qq(<?xml version="1.0" encoding="UTF-8"?>
65 <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
66   <dc:type/>
67   <dc:language/>
68 </oai_dc:dc>
69 );
70
71 is ($marcoaidc, $test3xml, "testing OAIDC Metadata");
72
73 my $marcrdfdc=marc2dcxml( $marc, undef, undef, "rdfdc" );
74 my $test4Axml=qq(<?xml version="1.0" encoding="UTF-8"?>
75 <rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
76   <dc:type/>
77   <dc:language/>
78 </rdf:Description>
79 );
80
81 is ($marcrdfdc, $test4Axml, "testing RDFDC Metadata");
82
83 my $marcdc=marc2dcxml( $marc, undef, undef, "dc" );
84 my $test4Bxml=qq(<?xml version="1.0" encoding="UTF-8"?>
85 <rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
86   <dc:type/>
87   <dc:language/>
88 </rdf:Description>
89 );
90
91 is ($marcrdfdc, $test4Bxml, "testing DC Metadata");
92
93 my $mods=marc2modsxml($marc);
94 my $test5xml=qq(<?xml version="1.0" encoding="UTF-8"?>
95 <mods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.loc.gov/mods/v3" version="3.1" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-1.xsd">
96   <typeOfResource/>
97   <originInfo>
98     <issuance/>
99   </originInfo>
100   <recordInfo/>
101 </mods>
102 );
103
104 is ($mods, $test5xml, "testing marc2modsxml");
105
106 $marc->append_fields(MARC::Field->new(
107     '100', ' ', ' ', a => 'Rowling, J.K.'
108 ));
109 my $field = MARC::Field->new('245','','','a' => "Harry potter");
110 $marc->append_fields($field);
111 $marc->append_fields(MARC::Field->new(
112     '260', ' ', ' ', b => 'Scholastic', c => '2001'
113 ));
114
115 #my $endnote=marc2endnote($marc->as_usmarc);
116 #print $endnote;
117
118 my $bibtex=marc2bibtex($marc, 'testID');
119 my $test6xml=qq(\@book{testID,
120         author = {Rowling, J.K.},
121         title = {Harry potter},
122         publisher = {Scholastic},
123         year = {2001}
124 }
125 );
126
127 is ($bibtex, $test6xml, "testing bibtex");
128
129 t::lib::Mocks::mock_preference( "BibtexExportAdditionalFields", "'\@': 260\$b\ntest: 260\$b" );
130 $bibtex = marc2bibtex( $marc, 'testID' );
131 my $test7xml = qq(\@Scholastic{testID,
132 \tauthor = {Rowling, J.K.},
133 \ttitle = {Harry potter},
134 \tpublisher = {Scholastic},
135 \tyear = {2001},
136 \ttest = {Scholastic}
137 }
138 );
139 is( $bibtex, $test7xml, "testing bibtex" );
140 t::lib::Mocks::mock_preference( "BibtexExportAdditionalFields", q{} );
141
142 $marc->append_fields(MARC::Field->new(
143     '264', '3', '1', b => 'Reprints', c => '2011'
144 ));
145 $bibtex = marc2bibtex($marc, 'testID');
146 my $rdabibtex = qq(\@book{testID,
147         author = {Rowling, J.K.},
148         title = {Harry potter},
149         publisher = {Reprints},
150         year = {2011}
151 }
152 );
153 is ($bibtex, $rdabibtex, "testing bibtex with RDA 264 field");
154
155 my @entity=C4::Record::_entity_encode("Björn");
156 is ($entity[0], "Bj&#xC3;&#xB6;rn", "Html umlauts");
157
158
159
160
161
162
163
164