Koha-Contrib-ARK

 view release on metacpan or  search on metacpan

xt/01-ark.t  view on Meta::CPAN

use Modern::Perl;
use MARC::Moose::Record;
use MARC::Moose::Field;
use MARC::Moose::Field::Control;
use MARC::Moose::Field::Std;
use MARC::Moose::Parser::Marcxml;
use C4::Context;
use Koha::Contrib::ARK;
use YAML;
use JSON;

use Test::More tests => 40;
use Test::Exit;
use Test::MockModule;


my $ark_conf = {
    ark => {
        "NMHA" => "myspecial.test.fr",
        "NAAN" => "12345",
        "ARK" => "http://{NMHA}/ark:/{NAAN}/catalog{id}",
        "koha" => {
          "id" => { "tag" => "001" },
          "ark" => { "tag" => "090", "letter" => "z" }
        }
    }
};


my $xml_chunk = <<EOS;
<record>
  <leader>01529    a2200217   4500</leader>
  <controlfield tag="001">1234</controlfield>
  <controlfield tag="005">20180505165105.0</controlfield>
  <controlfield tag="008">800108s1899    ilu           000 0 eng  </controlfield>
  <controlfield tag="009">132000601</controlfield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">0-19-877306-4</subfield>
  </datafield>
  <datafield tag="041" ind1=" " ind2=" ">
    <subfield code="a">eng</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="a">Burda, Michael C.</subfield>
    <subfield code="u">Economics and Political Science</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">Macroeconomics:</subfield>
    <subfield code="b">a European text</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="b">Oxford University Press,</subfield>
    <subfield code="c">1993.</subfield>
  </datafield>
  <datafield tag="300" ind1=" " ind2=" ">
    <subfield code="a">486 p. :</subfield>
    <subfield code="b">Graphs ;</subfield>
    <subfield code="c">25 cm.</subfield>
  </datafield>
  <datafield tag="690" ind1=" " ind2=" ">
    <subfield code="a">Economics</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="a">Wyplosz, Charles</subfield>
  </datafield>
  <datafield tag="942" ind1=" " ind2=" ">
    <subfield code="a">bib777</subfield>
    <subfield code="c">BK</subfield>
  </datafield>
  <datafield tag="952" ind1=" " ind2=" ">
    <subfield code="1">0</subfield>
    <subfield code="7">0</subfield>
    <subfield code="a">DO</subfield>
    <subfield code="b">DO</subfield>
    <subfield code="c">MC</subfield>
    <subfield code="o">HB172.5 .B87 1993</subfield>
    <subfield code="p">000426795</subfield>
    <subfield code="y">BK</subfield>
  </datafield>
</record>
EOS

my $parser = MARC::Moose::Parser::Marcxml->new();
my $record = $parser->parse( $xml_chunk );

my $m = Test::MockModule->new('C4::Context');
$m->mock('preference', sub { return 0; });

my $ark = Koha::Contrib::ARK->new();
ok( $ark->explain->{error}->{err_pref_missing}, 'ARK_CONF missing detected' );

$m->mock('preference', sub { return to_json($ark_conf, {pretty => 1}); });

$ark_conf->{a} = $ark_conf->{ark};
delete $ark_conf->{ark};
$ark = Koha::Contrib::ARK->new();
ok( $ark->explain->{error}->{err_pref_ark_missing}, 'ark variable missing in ARK_CONF' );

$ark_conf->{ark} = $ark_conf->{a};
delete $ark_conf->{a};
$ark = Koha::Contrib::ARK->new();

is( $ark->cmd, 'check', "->cmd default value is 'check'" );
is( $ark->verbose, '0', "->verbose default value is '0'" );
is( $ark->doit, '0', "->doit default value is '0'" );
is( $ark->debug, '0', '->debug default value is 0');
is(
    $ark->field_query,



( run in 0.466 second using v1.01-cache-2.11-cpan-ceb78f64989 )