From 0fe3737ad1c291834dd9fff49f1661e576a3ae73 Mon Sep 17 00:00:00 2001
From: Mike Rylander <mrylander@gmail.com>
Date: Tue, 3 Sep 2013 11:45:25 -0400
Subject: [PATCH] PgTAP tests for 0824

As promised at the August 2013 dev meeting, I'll be adding PgTAP tests
for any database work that I create, and where possible for any that
I commit for others.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
---
 Open-ILS/src/sql/Pg/t/0824.item_import_defaults.pg | 113 +++++++++++++++++++++
 1 file changed, 113 insertions(+)
 create mode 100644 Open-ILS/src/sql/Pg/t/0824.item_import_defaults.pg

diff --git a/Open-ILS/src/sql/Pg/t/0824.item_import_defaults.pg b/Open-ILS/src/sql/Pg/t/0824.item_import_defaults.pg
new file mode 100644
index 0000000000..0828c1eb58
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/t/0824.item_import_defaults.pg
@@ -0,0 +1,113 @@
+\set ECHO
+\set QUIET 1
+-- Turn off echo and keep things quiet.
+
+-- Format the output for nice TAP.
+\pset format unaligned
+\pset tuples_only true
+\pset pager
+
+-- Revert all changes on failure.
+\set ON_ERROR_ROLLBACK 1
+\set ON_ERROR_STOP true
+\set QUIET 1
+
+-- let's do this thing
+BEGIN;
+
+SELECT plan(2);
+
+INSERT INTO actor.org_unit_setting (org_unit,name,value) VALUES
+(4,'vandelay.item.barcode.auto','true'),
+(4,'vandelay.item.circ_modifier.default','"BOOK"'),
+(4,'vandelay.item.call_number.auto','true');
+
+INSERT INTO vandelay.bib_queue (owner,name,item_attr_def)
+VALUES (
+    1,
+    'tmp test queue '||RANDOM(),
+    (SELECT id FROM vandelay.import_item_attr_definition WHERE name = 'Evergreen 852 export format') -- Hope the schema is stock...
+);
+
+INSERT INTO vandelay.queued_bib_record (marc,queue)
+VALUES (
+    $$<record xmlns="http://www.loc.gov/MARC21/slim">
+<leader>00663ncm a2200229Ia 4500</leader>
+<controlfield tag="001">ocm20612671</controlfield><controlfield tag="005">20090604115400.0</controlfield>
+<controlfield tag="008">891108s1989    mnupp    i     n    eng d</controlfield>
+<datafield ind1=" " ind2=" " tag="020"><subfield code="z">HL00361126 :</subfield><subfield code="c">$14.95</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="040"><subfield code="a">TUL</subfield><subfield code="c">TUL</subfield><subfield code="d">UtOrBLW</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="049"><subfield code="a">MRQA</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="092"><subfield code="a">782.421630264</subfield><subfield code="b">S6986 1989</subfield></datafield>
+<datafield ind1="0" ind2="0" tag="245"><subfield code="a">Songs of the 60's :</subfield><subfield code="b">piano, vocal, guitar.</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="260"><subfield code="a">Winona, MN :</subfield><subfield code="b">H. Leonard,</subfield><subfield code="c">c1989.</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="300"><subfield code="a">1 score (175 p.) :</subfield><subfield code="b">ill. ;</subfield><subfield code="c">31 cm.</subfield></datafield>
+<datafield ind1=" " ind2="4" tag="440"><subfield code="a">Decade series</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="500"><subfield code="a">With a preface by Stanley Green.</subfield></datafield>
+<datafield ind1=" " ind2="0" tag="650"><subfield code="a">Popular music</subfield><subfield code="y">1961-1970</subfield></datafield>
+<datafield ind1="0" ind2=" " tag="740"><subfield code="a">Songs of the sixties.</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="830"><subfield code="a">DE (Series)</subfield></datafield>
+<datafield tag="852" ind1="4" ind2=" "><subfield code="c">Stacks</subfield><subfield code="b">BR1</subfield><subfield code="j">CN-label</subfield><subfield code="b">BR1</subfield><subfield code="p">BC1234567890</subfield><subfield code="z">Available</subfield></datafield><!-- full from Z -->
+<datafield ind1="0" ind2="0" tag="913"><subfield code="a">*SOT60S99000</subfield></datafield>
+</record>$$,
+    CURRVAL('vandelay.queue_id_seq')
+);
+
+/*
+SELECT * FROM vandelay.ingest_items(
+    CURRVAL('vandelay.queued_record_id_seq'),
+    (SELECT item_attr_def FROM vandelay.bib_queue WHERE id = CURRVAL('vandelay.queue_id_seq'))
+);
+*/
+
+SELECT isnt_empty(
+    $$SELECT * FROM vandelay.ingest_items(
+        CURRVAL('vandelay.queued_record_id_seq'),
+        (SELECT item_attr_def FROM vandelay.bib_queue WHERE id = CURRVAL('vandelay.queue_id_seq'))
+    ) WHERE circ_modifier = 'BOOK' AND barcode = 'BC1234567890';$$,
+    'Should have a row with barcode BC1234567890 and auto-circ mod of BOOK'
+);
+
+
+INSERT INTO vandelay.queued_bib_record (marc,queue)
+VALUES (
+    $$<record xmlns="http://www.loc.gov/MARC21/slim">
+<leader>00663ncm a2200229Ia 4500</leader>
+<controlfield tag="001">ocm20612671</controlfield><controlfield tag="005">20090604115400.0</controlfield>
+<controlfield tag="008">891108s1989    mnupp    i     n    eng d</controlfield>
+<datafield ind1=" " ind2=" " tag="020"><subfield code="z">HL00361126 :</subfield><subfield code="c">$14.95</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="040"><subfield code="a">TUL</subfield><subfield code="c">TUL</subfield><subfield code="d">UtOrBLW</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="049"><subfield code="a">MRQA</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="092"><subfield code="a">782.421630264</subfield><subfield code="b">S6986 1989</subfield></datafield>
+<datafield ind1="0" ind2="0" tag="245"><subfield code="a">Songs of the 60's :</subfield><subfield code="b">piano, vocal, guitar.</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="260"><subfield code="a">Winona, MN :</subfield><subfield code="b">H. Leonard,</subfield><subfield code="c">c1989.</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="300"><subfield code="a">1 score (175 p.) :</subfield><subfield code="b">ill. ;</subfield><subfield code="c">31 cm.</subfield></datafield>
+<datafield ind1=" " ind2="4" tag="440"><subfield code="a">Decade series</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="500"><subfield code="a">With a preface by Stanley Green.</subfield></datafield>
+<datafield ind1=" " ind2="0" tag="650"><subfield code="a">Popular music</subfield><subfield code="y">1961-1970</subfield></datafield>
+<datafield ind1="0" ind2=" " tag="740"><subfield code="a">Songs of the sixties.</subfield></datafield>
+<datafield ind1=" " ind2=" " tag="830"><subfield code="a">DE (Series)</subfield></datafield>
+<datafield tag="852" ind1="4" ind2=" "><subfield code="c">Stacks</subfield><subfield code="b">BR1</subfield><subfield code="b">BR1</subfield><subfield code="z">Available</subfield></datafield><!-- missing barcode and call number -->
+<datafield ind1="0" ind2="0" tag="913"><subfield code="a">*SOT60S99000</subfield></datafield>
+</record>$$,
+    CURRVAL('vandelay.queue_id_seq')
+);
+
+/*
+SELECT * FROM vandelay.ingest_items(
+    CURRVAL('vandelay.queued_record_id_seq'),
+    (SELECT item_attr_def FROM vandelay.bib_queue WHERE id = CURRVAL('vandelay.queue_id_seq'))
+);
+*/
+
+SELECT isnt_empty(
+    $$SELECT * FROM vandelay.ingest_items(
+        CURRVAL('vandelay.queued_record_id_seq'),
+        (SELECT item_attr_def FROM vandelay.bib_queue WHERE id = CURRVAL('vandelay.queue_id_seq'))
+    ) WHERE circ_modifier = 'BOOK' AND barcode IS NULL AND call_number is NULL; -- null barcode means "use auto"$$,
+    'Should have a row with a NULL barcode and call number, auto-circ mod of BOOK'
+);
+
+SELECT * FROM finish();
+ROLLBACK;
+
-- 
2.11.0