Lines 56-66
my $schema = Koha::Database->schema;
Link Here
|
56 |
$schema->storage->txn_begin; |
56 |
$schema->storage->txn_begin; |
57 |
my $dbh = C4::Context->dbh; |
57 |
my $dbh = C4::Context->dbh; |
58 |
|
58 |
|
59 |
$dbh->do('SET FOREIGN_KEY_CHECKS = 0'); |
|
|
60 |
$dbh->do("SET time_zone='+00:00'"); |
59 |
$dbh->do("SET time_zone='+00:00'"); |
61 |
$dbh->do('TRUNCATE biblio'); |
60 |
$dbh->do('DELETE FROM biblio'); |
62 |
$dbh->do('TRUNCATE biblioitems'); |
|
|
63 |
$dbh->do('TRUNCATE issues'); |
64 |
|
61 |
|
65 |
my $date_added = DateTime->now() . 'Z'; |
62 |
my $date_added = DateTime->now() . 'Z'; |
66 |
my $date_to = substr($date_added, 0, 10) . 'T23:59:59Z'; |
63 |
my $date_to = substr($date_added, 0, 10) . 'T23:59:59Z'; |
Lines 68-91
my (@header, @marcxml, @oaidc);
Link Here
|
68 |
my $sth = $dbh->prepare('SELECT timestamp FROM biblioitems WHERE biblionumber=?'); |
65 |
my $sth = $dbh->prepare('SELECT timestamp FROM biblioitems WHERE biblionumber=?'); |
69 |
|
66 |
|
70 |
# Add 10 biblio records |
67 |
# Add 10 biblio records |
71 |
foreach( 1..10 ) { |
68 |
foreach my $index ( 0..9 ) { |
72 |
my $record = MARC::Record->new(); |
69 |
my $record = MARC::Record->new(); |
73 |
$record->append_fields( MARC::Field->new('245', '', '', 'a' => "Title $_" ) ); |
70 |
$record->append_fields( MARC::Field->new('245', '', '', 'a' => "Title $index" ) ); |
74 |
my ($biblionumber) = AddBiblio($record, ''); |
71 |
my ($biblionumber) = AddBiblio($record, ''); |
75 |
$sth->execute($biblionumber); |
72 |
$sth->execute($biblionumber); |
76 |
my $timestamp = $sth->fetchrow_array . 'Z'; |
73 |
my $timestamp = $sth->fetchrow_array . 'Z'; |
77 |
$timestamp =~ s/ /T/; |
74 |
$timestamp =~ s/ /T/; |
78 |
$record = GetMarcBiblio($biblionumber); |
75 |
$record = GetMarcBiblio($biblionumber); |
79 |
$record = XMLin($record->as_xml_record); |
76 |
$record = XMLin($record->as_xml_record); |
80 |
$header[$biblionumber] = { datestamp => $timestamp, identifier => "TEST:$biblionumber" }; |
77 |
push @header, { datestamp => $timestamp, identifier => "TEST:$biblionumber" }; |
81 |
delete $record->{$_} for (('xmlns','xmlns:xsi','xsi:schemaLocation')); |
78 |
delete $record->{$_} for (('xmlns','xmlns:xsi','xsi:schemaLocation')); |
82 |
$oaidc[$biblionumber] = { |
79 |
push @oaidc, { |
83 |
header => $header[$biblionumber], |
80 |
header => $header[$index], |
84 |
metadata => { |
81 |
metadata => { |
85 |
'oai_dc:dcCollection' => { |
82 |
'oai_dc:dcCollection' => { |
86 |
'oai_dc:dc' => { |
83 |
'oai_dc:dc' => { |
87 |
'dc:title' => { |
84 |
'dc:title' => { |
88 |
'content' => "Title $biblionumber", |
85 |
'content' => "Title $index", |
89 |
'xmlns:dc' => 'http://purl.org/dc/elements/1.1/' |
86 |
'xmlns:dc' => 'http://purl.org/dc/elements/1.1/' |
90 |
}, |
87 |
}, |
91 |
'dc:language' => { |
88 |
'dc:language' => { |
Lines 101-111
foreach( 1..10 ) {
Link Here
|
101 |
}, |
98 |
}, |
102 |
}, |
99 |
}, |
103 |
}; |
100 |
}; |
104 |
$marcxml[$biblionumber] = { |
101 |
push @marcxml, { |
105 |
header => $header[$biblionumber], |
102 |
header => $header[$index], |
106 |
metadata => { |
103 |
metadata => { |
107 |
collection => { |
104 |
collection => { |
108 |
record => $record, |
105 |
record => $record, |
109 |
"xmlns" => "http://www.loc.gov/MARC21/slim", |
106 |
"xmlns" => "http://www.loc.gov/MARC21/slim", |
110 |
"xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", |
107 |
"xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", |
111 |
"xsi:schemaLocation" => "http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd", |
108 |
"xsi:schemaLocation" => "http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd", |
Lines 188-197
test_query('ListIdentifiers without metadataPrefix', {verb => 'ListIdentifiers'}
Link Here
|
188 |
}, |
185 |
}, |
189 |
}); |
186 |
}); |
190 |
|
187 |
|
191 |
|
|
|
192 |
test_query('ListIdentifiers', {verb => 'ListIdentifiers', metadataPrefix => 'marcxml'}, { |
188 |
test_query('ListIdentifiers', {verb => 'ListIdentifiers', metadataPrefix => 'marcxml'}, { |
193 |
ListIdentifiers => { |
189 |
ListIdentifiers => { |
194 |
header => [ @header[1..3] ], |
190 |
header => [ @header[0..2] ], |
195 |
resumptionToken => { |
191 |
resumptionToken => { |
196 |
content => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0", |
192 |
content => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0", |
197 |
cursor => 3, |
193 |
cursor => 3, |
Lines 201-207
test_query('ListIdentifiers', {verb => 'ListIdentifiers', metadataPrefix => 'mar
Link Here
|
201 |
|
197 |
|
202 |
test_query('ListIdentifiers', {verb => 'ListIdentifiers', metadataPrefix => 'marcxml'}, { |
198 |
test_query('ListIdentifiers', {verb => 'ListIdentifiers', metadataPrefix => 'marcxml'}, { |
203 |
ListIdentifiers => { |
199 |
ListIdentifiers => { |
204 |
header => [ @header[1..3] ], |
200 |
header => [ @header[0..2] ], |
205 |
resumptionToken => { |
201 |
resumptionToken => { |
206 |
content => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0", |
202 |
content => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0", |
207 |
cursor => 3, |
203 |
cursor => 3, |
Lines 214-220
test_query(
Link Here
|
214 |
{ verb => 'ListIdentifiers', resumptionToken => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0" }, |
210 |
{ verb => 'ListIdentifiers', resumptionToken => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0" }, |
215 |
{ |
211 |
{ |
216 |
ListIdentifiers => { |
212 |
ListIdentifiers => { |
217 |
header => [ @header[4..6] ], |
213 |
header => [ @header[3..5] ], |
218 |
resumptionToken => { |
214 |
resumptionToken => { |
219 |
content => "marcxml/6/1970-01-01T00:00:00Z/$date_to//0", |
215 |
content => "marcxml/6/1970-01-01T00:00:00Z/$date_to//0", |
220 |
cursor => 6, |
216 |
cursor => 6, |
Lines 229-235
test_query(
Link Here
|
229 |
{ verb => 'ListIdentifiers', resumptionToken => "marcxml/6/1970-01-01T00:00:00Z/$date_to//0" }, |
225 |
{ verb => 'ListIdentifiers', resumptionToken => "marcxml/6/1970-01-01T00:00:00Z/$date_to//0" }, |
230 |
{ |
226 |
{ |
231 |
ListIdentifiers => { |
227 |
ListIdentifiers => { |
232 |
header => [ @header[7..9] ], |
228 |
header => [ @header[6..8] ], |
233 |
resumptionToken => { |
229 |
resumptionToken => { |
234 |
content => "marcxml/9/1970-01-01T00:00:00Z/$date_to//0", |
230 |
content => "marcxml/9/1970-01-01T00:00:00Z/$date_to//0", |
235 |
cursor => 9, |
231 |
cursor => 9, |
Lines 244-250
test_query(
Link Here
|
244 |
{ verb => 'ListIdentifiers', resumptionToken => "marcxml/9/1970-01-01T00:00:00Z/$date_to//0" }, |
240 |
{ verb => 'ListIdentifiers', resumptionToken => "marcxml/9/1970-01-01T00:00:00Z/$date_to//0" }, |
245 |
{ |
241 |
{ |
246 |
ListIdentifiers => { |
242 |
ListIdentifiers => { |
247 |
header => $header[10], |
243 |
header => $header[9], |
248 |
}, |
244 |
}, |
249 |
|
245 |
|
250 |
}, |
246 |
}, |
Lines 259-265
test_query('ListRecords marcxml without metadataPrefix', {verb => 'ListRecords'}
Link Here
|
259 |
|
255 |
|
260 |
test_query('ListRecords marcxml', {verb => 'ListRecords', metadataPrefix => 'marcxml'}, { |
256 |
test_query('ListRecords marcxml', {verb => 'ListRecords', metadataPrefix => 'marcxml'}, { |
261 |
ListRecords => { |
257 |
ListRecords => { |
262 |
record => [ @marcxml[1..3] ], |
258 |
record => [ @marcxml[0..2] ], |
263 |
resumptionToken => { |
259 |
resumptionToken => { |
264 |
content => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0", |
260 |
content => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0", |
265 |
cursor => 3, |
261 |
cursor => 3, |
Lines 271-277
test_query(
Link Here
|
271 |
'ListRecords marcxml with resumptionToken 1', |
267 |
'ListRecords marcxml with resumptionToken 1', |
272 |
{ verb => 'ListRecords', resumptionToken => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0" }, |
268 |
{ verb => 'ListRecords', resumptionToken => "marcxml/3/1970-01-01T00:00:00Z/$date_to//0" }, |
273 |
{ ListRecords => { |
269 |
{ ListRecords => { |
274 |
record => [ @marcxml[4..6] ], |
270 |
record => [ @marcxml[3..5] ], |
275 |
resumptionToken => { |
271 |
resumptionToken => { |
276 |
content => "marcxml/6/1970-01-01T00:00:00Z/$date_to//0", |
272 |
content => "marcxml/6/1970-01-01T00:00:00Z/$date_to//0", |
277 |
cursor => 6, |
273 |
cursor => 6, |
Lines 283-289
test_query(
Link Here
|
283 |
'ListRecords marcxml with resumptionToken 2', |
279 |
'ListRecords marcxml with resumptionToken 2', |
284 |
{ verb => 'ListRecords', resumptionToken => "marcxml/6/1970-01-01T00:00:00Z/$date_to//0" }, |
280 |
{ verb => 'ListRecords', resumptionToken => "marcxml/6/1970-01-01T00:00:00Z/$date_to//0" }, |
285 |
{ ListRecords => { |
281 |
{ ListRecords => { |
286 |
record => [ @marcxml[7..9] ], |
282 |
record => [ @marcxml[6..8] ], |
287 |
resumptionToken => { |
283 |
resumptionToken => { |
288 |
content => "marcxml/9/1970-01-01T00:00:00Z/$date_to//0", |
284 |
content => "marcxml/9/1970-01-01T00:00:00Z/$date_to//0", |
289 |
cursor => 9, |
285 |
cursor => 9, |
Lines 296-308
test_query(
Link Here
|
296 |
'ListRecords marcxml with resumptionToken 3, response without resumption', |
292 |
'ListRecords marcxml with resumptionToken 3, response without resumption', |
297 |
{ verb => 'ListRecords', resumptionToken => "marcxml/9/1970-01-01T00:00:00Z/$date_to//0" }, |
293 |
{ verb => 'ListRecords', resumptionToken => "marcxml/9/1970-01-01T00:00:00Z/$date_to//0" }, |
298 |
{ ListRecords => { |
294 |
{ ListRecords => { |
299 |
record => $marcxml[10], |
295 |
record => $marcxml[9], |
300 |
}, |
296 |
}, |
301 |
}); |
297 |
}); |
302 |
|
298 |
|
303 |
test_query('ListRecords oai_dc', {verb => 'ListRecords', metadataPrefix => 'oai_dc'}, { |
299 |
test_query('ListRecords oai_dc', {verb => 'ListRecords', metadataPrefix => 'oai_dc'}, { |
304 |
ListRecords => { |
300 |
ListRecords => { |
305 |
record => [ @oaidc[1..3] ], |
301 |
record => [ @oaidc[0..2] ], |
306 |
resumptionToken => { |
302 |
resumptionToken => { |
307 |
content => "oai_dc/3/1970-01-01T00:00:00Z/$date_to//0", |
303 |
content => "oai_dc/3/1970-01-01T00:00:00Z/$date_to//0", |
308 |
cursor => 3, |
304 |
cursor => 3, |
Lines 314-320
test_query(
Link Here
|
314 |
'ListRecords oai_dc with resumptionToken 1', |
310 |
'ListRecords oai_dc with resumptionToken 1', |
315 |
{ verb => 'ListRecords', resumptionToken => "oai_dc/3/1970-01-01T00:00:00Z/$date_to//0" }, |
311 |
{ verb => 'ListRecords', resumptionToken => "oai_dc/3/1970-01-01T00:00:00Z/$date_to//0" }, |
316 |
{ ListRecords => { |
312 |
{ ListRecords => { |
317 |
record => [ @oaidc[4..6] ], |
313 |
record => [ @oaidc[3..5] ], |
318 |
resumptionToken => { |
314 |
resumptionToken => { |
319 |
content => "oai_dc/6/1970-01-01T00:00:00Z/$date_to//0", |
315 |
content => "oai_dc/6/1970-01-01T00:00:00Z/$date_to//0", |
320 |
cursor => 6, |
316 |
cursor => 6, |
Lines 326-332
test_query(
Link Here
|
326 |
'ListRecords oai_dc with resumptionToken 2', |
322 |
'ListRecords oai_dc with resumptionToken 2', |
327 |
{ verb => 'ListRecords', resumptionToken => "oai_dc/6/1970-01-01T00:00:00Z/$date_to//0" }, |
323 |
{ verb => 'ListRecords', resumptionToken => "oai_dc/6/1970-01-01T00:00:00Z/$date_to//0" }, |
328 |
{ ListRecords => { |
324 |
{ ListRecords => { |
329 |
record => [ @oaidc[7..9] ], |
325 |
record => [ @oaidc[6..8] ], |
330 |
resumptionToken => { |
326 |
resumptionToken => { |
331 |
content => "oai_dc/9/1970-01-01T00:00:00Z/$date_to//0", |
327 |
content => "oai_dc/9/1970-01-01T00:00:00Z/$date_to//0", |
332 |
cursor => 9, |
328 |
cursor => 9, |
Lines 339-345
test_query(
Link Here
|
339 |
'ListRecords oai_dc with resumptionToken 3, response without resumption', |
335 |
'ListRecords oai_dc with resumptionToken 3, response without resumption', |
340 |
{ verb => 'ListRecords', resumptionToken => "oai_dc/9/1970-01-01T00:00:00Z/$date_to//0" }, |
336 |
{ verb => 'ListRecords', resumptionToken => "oai_dc/9/1970-01-01T00:00:00Z/$date_to//0" }, |
341 |
{ ListRecords => { |
337 |
{ ListRecords => { |
342 |
record => $oaidc[10], |
338 |
record => $oaidc[9], |
343 |
}, |
339 |
}, |
344 |
}); |
340 |
}); |
345 |
|
341 |
|
346 |
- |
|
|