]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/t/lp1387722_record_leader_updates.pg
LP#1387722: Update MARC leader when deleting a record
[Evergreen.git] / Open-ILS / src / sql / Pg / t / lp1387722_record_leader_updates.pg
1 BEGIN;
2
3 SELECT plan(4);
4
5 ----------------------------------
6 -- Setup Test environment and data
7 ----------------------------------
8
9 -- create bib 70,000
10 INSERT into biblio.record_entry (id, marc, last_xact_id)
11   VALUES (70000, 
12   $$
13   <record xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd" xmlns="http://www.loc.gov/MARC21/slim"><leader>00934|jm a2200241 a 4500</leader><controlfield tag="001">03-0003745</controlfield><controlfield tag="005">19991118131708.0</controlfield><controlfield tag="008">971016n nyuuuu eng </controlfield><datafield tag="050" ind1=" " ind2=" "><subfield code="a">4539</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Bart&#xF3;k, B&#xE9;la,</subfield><subfield code="d">1881-1945.</subfield></datafield><datafield tag="240" ind1=" " ind2=" "><subfield code="t">Concertos,</subfield><subfield code="m">piano,</subfield><subfield code="n">no. 1,</subfield><subfield code="n">Sz. 83</subfield><subfield code="f">(1926) </subfield><subfield code="a">Concertos,</subfield><subfield code="m">piano,</subfield><subfield code="n">no. 1,</subfield><subfield code="n">Sz. 83,</subfield><subfield code="n">(1926)</subfield></datafield><datafield tag="245" ind1=" " ind2=" "><subfield code="a">Piano concerto no. 1 (1926) ; Rhapsody, op. 1 (1904)</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">New York, NY :</subfield><subfield code="b">Vox</subfield></datafield></record>
14   $$,
15   'PGTAP'
16   );
17
18 -----------------------------------
19 -- Test biblio.set_record_status_in_leader()
20 -----------------------------------
21
22 -- initially the status is undefined so now it should be 'n'
23 SELECT is((SELECT SUBSTR(ARRAY_TO_STRING(oils_xpath('//*[local-name()="leader"]/text()',marc),''),6,1) FROM biblio.record_entry WHERE id = 70000), 'n', 'Record is marked new.');
24
25 -- check to see if it sets to 'c' correctly upon editing
26 UPDATE biblio.record_entry SET marc = REPLACE(marc,'piano','dydraulophone') WHERE id = 70000;
27 SELECT is((SELECT SUBSTR(ARRAY_TO_STRING(oils_xpath('//*[local-name()="leader"]/text()',marc),''),6,1) FROM biblio.record_entry WHERE id = 70000), 'c', 'Record is marked updated.');
28
29 -- see if the record correctly marks as deleted 'd'
30 UPDATE biblio.record_entry SET deleted = TRUE WHERE id = 70000;
31 SELECT is((SELECT SUBSTR(ARRAY_TO_STRING(oils_xpath('//*[local-name()="leader"]/text()',marc),''),6,1) FROM biblio.record_entry WHERE id = 70000), 'd', 'Record is marked deleted.');
32
33 -- see if the record is correctly set to 'c' when undeleted
34 UPDATE biblio.record_entry SET deleted = FALSE WHERE id = 70000;
35 SELECT is((SELECT SUBSTR(ARRAY_TO_STRING(oils_xpath('//*[local-name()="leader"]/text()',marc),''),6,1) FROM biblio.record_entry WHERE id = 70000), 'c', 'Record is marked updated.');
36
37 SELECT * FROM finish();
38
39 ROLLBACK;