LP#1367926: add some unit tests
authorGalen Charlton <gmc@esilibrary.com>
Tue, 16 Feb 2016 18:28:27 +0000 (13:28 -0500)
committerKathy Lussier <klussier@masslnc.org>
Thu, 18 Feb 2016 15:52:21 +0000 (10:52 -0500)
- a pgTAP test of the new 'bre.extern' include option
  for unapi.bre()
- tests for OpenILS::WWW::SuperCat::unapi2_formats and
  OpenILS::Utils::TagURI

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Open-ILS/src/perlmods/t/18-OpenILS-WWW-SuperCat.t
Open-ILS/src/sql/Pg/t/unapi.pg [new file with mode: 0644]

index ffffba6..39fae1c 100644 (file)
@@ -1,8 +1,33 @@
 #!perl -T
 
-use Test::More tests => 2;
+use Test::More tests => 10;
+use Test::Output;
 
 BEGIN {
        use_ok( 'OpenILS::WWW::SuperCat' );
 }
 use_ok( 'OpenILS::WWW::SuperCat::Feed' );
+use_ok( 'OpenILS::Utils::TagURI' );
+
+my $tag = 'tag::U2@bre/454{holdings_xml}';
+my $u = OpenILS::Utils::TagURI->new($tag);
+is( $u->id,        454,   'parsed correct ID' );
+is( $u->classname, 'bre', 'parsed correct class name' );
+is( $u->toURI,     $tag,  'can reconstruct unAPI ID' );
+
+my $apache_stub;
+stdout_like { OpenILS::WWW::SuperCat::unapi2_formats($apache_stub, $u) }
+            qr/marcxml/,
+            'U2 formats list for bre includes marcxml';
+
+stdout_unlike { OpenILS::WWW::SuperCat::unapi2_formats($apache_stub, $u) }
+              qr/name="xml"/,
+              'U2 formats list for bre does not include xml';
+
+my $u2 = OpenILS::Utils::TagURI->new('tag::U2@acn/4');
+stdout_like { OpenILS::WWW::SuperCat::unapi2_formats($apache_stub, $u2) }
+            qr/name="xml"/,
+            'U2 formats list for acn does includes xml';
+stdout_unlike { OpenILS::WWW::SuperCat::unapi2_formats($apache_stub, $u2) }
+              qr/name="marcxml"/,
+              'U2 formats list for acn does not includes marcxml';
diff --git a/Open-ILS/src/sql/Pg/t/unapi.pg b/Open-ILS/src/sql/Pg/t/unapi.pg
new file mode 100644 (file)
index 0000000..15b1919
--- /dev/null
@@ -0,0 +1,12 @@
+BEGIN;
+
+SELECT plan(1);
+
+SELECT matches(
+    (SELECT unapi.bre(-1, 'marcxml', 'bre', '{bre.extern}', '-')::TEXT),
+    '<extern xmlns="http://open-ils.org/spec/biblio/v1"',
+    'bre.extern include for unapi.bre supplies <extern> element'
+);
+    
+SELECT * FROM finish();
+ROLLBACK;