Skip to content
Snippets Groups Projects
Commit 094d8ec5 authored by Jens Steidl's avatar Jens Steidl :baby_chick:
Browse files

- updated existing and added missing subroutine test cases

parent c43a9037
No related branches found
No related tags found
No related merge requests found
...@@ -24,7 +24,7 @@ use strict; ...@@ -24,7 +24,7 @@ use strict;
use warnings; use warnings;
use diagnostics; use diagnostics;
use Test::More tests => 120; use Test::More tests => 138;
use Test::Output; use Test::Output;
use Test::Exception; use Test::Exception;
use Test::File; use Test::File;
...@@ -628,6 +628,18 @@ my $noppn_mods_res = "<mods version=\"3.6\" ...@@ -628,6 +628,18 @@ my $noppn_mods_res = "<mods version=\"3.6\"
my $exportToArchiveDate = "2020-08-05_10-26-11"; my $exportToArchiveDate = "2020-08-05_10-26-11";
my $ppn = "457035137"; my $ppn = "457035137";
my $noppn = ""; my $noppn = "";
my $marc21;
my $mods;
my @addBagInfo = (
{'SLUBArchiv-sipVersion' => 'v2020.1'},
{'SLUBArchiv-externalWorkflow' => 'kitodo'},
{'SLUBArchiv-externalId' => '10008'},
{'SLUBArchiv-externalIsilId' => 'DE-14'},
{'SLUBArchiv-exportToArchiveDate' => '2020-08-05T10:26:11'},
{'SLUBArchiv-hasConservationReason' => 'false'},
{'SLUBArchiv-archivalValueDescription' => 'Gesetzlicher Auftrag'},
{'SLUBArchiv-rightsVersion' => '1.0'}
);
# input # input
my $input_path = path(__FILE__)->parent->parent->child('export_dir_kitodo')->child('bagit'); my $input_path = path(__FILE__)->parent->parent->child('export_dir_kitodo')->child('bagit');
# output # output
...@@ -664,7 +676,7 @@ if($xsl_path->is_dir){ $xsl_path->remove_tree; } ...@@ -664,7 +676,7 @@ if($xsl_path->is_dir){ $xsl_path->remove_tree; }
BEGIN { use_ok("SLUB::LZA::SIPBuilderBagIt"); } BEGIN { use_ok("SLUB::LZA::SIPBuilderBagIt"); }
# *************************************************************************** test old functions ****************************************************************************************************************** # *************************************************************************** test old functions ******************************************************************************************************************
#
is(SLUB::LZA::SIPBuilderBagIt::check_xsl_directory(), $xsl_path->absolute, "check_xsl_directory(), return value if not exist"); is(SLUB::LZA::SIPBuilderBagIt::check_xsl_directory(), $xsl_path->absolute, "check_xsl_directory(), return value if not exist");
ok($xsl_path->is_dir, "check_xsl_directory(), created if not exist"); ok($xsl_path->is_dir, "check_xsl_directory(), created if not exist");
is(SLUB::LZA::SIPBuilderBagIt::check_xsl_directory(), $xsl_path->absolute, "check_xsl_directory(), return value if exist"); is(SLUB::LZA::SIPBuilderBagIt::check_xsl_directory(), $xsl_path->absolute, "check_xsl_directory(), return value if exist");
...@@ -672,16 +684,16 @@ ok($xsl_path->is_dir, "check_xsl_directory(), untouched if exist"); ...@@ -672,16 +684,16 @@ ok($xsl_path->is_dir, "check_xsl_directory(), untouched if exist");
# #
SKIP: { SKIP: {
skip "No response from server https://sru.bsz-bw.de/swb", 1 unless ! $response->is_error; skip "No response from server https://sru.bsz-bw.de/swb", 1 unless ! $response->is_error;
like(SLUB::LZA::SIPBuilderBagIt::get_mods_from("https://sru.bsz-bw.de/swb", $ppn, "pica.swn", "marcxmlvbos"), qr//, "get_mods_from()"); like(SLUB::LZA::SIPBuilderBagIt::get_marc21_from("https://sru.bsz-bw.de/swb", $ppn, "pica.swn", "marcxmlvbos"), qr//, "get_marc21_from()");
}; };
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from("", $ppn, "pica.swn", "marcxmlvbos"); } qr/invalid parameters/, "get_mods_from(), invalid parameters"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from("", $ppn, "pica.swn", "marcxmlvbos"); } qr/invalid parameters/, "get_marc21_from(), invalid parameters";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from("https://sru.bsz-bw.de/swb", "", "pica.swn", "marcxmlvbos"); } qr/invalid parameters/, "get_mods_from(), invalid parameters"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from("https://sru.bsz-bw.de/swb", "", "pica.swn", "marcxmlvbos"); } qr/invalid parameters/, "get_marc21_from(), invalid parameters";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from("https://sru.bsz-bw.de/swb", $ppn, "", "marcxmlvbos"); } qr/invalid parameters/, "get_mods_from(), invalid parameters"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from("https://sru.bsz-bw.de/swb", $ppn, "", "marcxmlvbos"); } qr/invalid parameters/, "get_marc21_from(), invalid parameters";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from("https://sru.bsz-bw.de/swb", $ppn, "pica.swn", ""); } qr/invalid parameters/, "get_mods_from(), invalid parameters"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from("https://sru.bsz-bw.de/swb", $ppn, "pica.swn", ""); } qr/invalid parameters/, "get_marc21_from(), invalid parameters";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from(undef, $ppn, "pica.swn", "marcxmlvbos"); } qr/url not defined/, "get_mods_from(\$url, \$ppn, \$key, \$schema), url undef"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from(undef, $ppn, "pica.swn", "marcxmlvbos"); } qr/url not defined/, "get_marc21_from(\$url, \$ppn, \$key, \$schema), url undef";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from("https://sru.bsz-bw.de/swb", undef, "pica.swn", "marcxmlvbos"); } qr/ppn not defined/, "get_mods_from(\$url, \$ppn, \$key, \$schema), ppn undef"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from("https://sru.bsz-bw.de/swb", undef, "pica.swn", "marcxmlvbos"); } qr/ppn not defined/, "get_marc21_from(\$url, \$ppn, \$key, \$schema), ppn undef";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from("https://sru.bsz-bw.de/swb", $ppn, undef, "marcxmlvbos"); } qr/key not defined/, "get_mods_from(\$url, \$ppn, \$key, \$schema), key undef"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from("https://sru.bsz-bw.de/swb", $ppn, undef, "marcxmlvbos"); } qr/key not defined/, "get_marc21_from(\$url, \$ppn, \$key, \$schema), key undef";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from("https://sru.bsz-bw.de/swb", $ppn, "pica.swn", undef); } qr/schema not defined/, "get_mods_from(\$url, \$ppn, \$key, \$schema), schema undef"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from("https://sru.bsz-bw.de/swb", $ppn, "pica.swn", undef); } qr/schema not defined/, "get_marc21_from(\$url, \$ppn, \$key, \$schema), schema undef";
# #
ok(SLUB::LZA::SIPBuilderBagIt::write_file($marc21slimutils_file, $unpatched_marc21slimutils), "write_file()"); ok(SLUB::LZA::SIPBuilderBagIt::write_file($marc21slimutils_file, $unpatched_marc21slimutils), "write_file()");
throws_ok{ SLUB::LZA::SIPBuilderBagIt::write_file("", $unpatched_marc21slimutils); } qr/invalid parameters/, "write_file(), invalid parameters"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::write_file("", $unpatched_marc21slimutils); } qr/invalid parameters/, "write_file(), invalid parameters";
...@@ -709,15 +721,41 @@ throws_ok{ SLUB::LZA::SIPBuilderBagIt::check_marc21_mods_xsl($xsl_path, ""); } q ...@@ -709,15 +721,41 @@ throws_ok{ SLUB::LZA::SIPBuilderBagIt::check_marc21_mods_xsl($xsl_path, ""); } q
throws_ok{ SLUB::LZA::SIPBuilderBagIt::check_marc21_mods_xsl(undef, $useragent_obj); } qr/xsl directory not defined/, "check_marc21_mods_xsl(\$xsl_dir, \$useragent), xsl_dir undef"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::check_marc21_mods_xsl(undef, $useragent_obj); } qr/xsl directory not defined/, "check_marc21_mods_xsl(\$xsl_dir, \$useragent), xsl_dir undef";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::check_marc21_mods_xsl($xsl_path, undef); } qr/user agent not defined/, "check_marc21_mods_xsl(\$xsl_dir, \$useragent), useragent undef"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::check_marc21_mods_xsl($xsl_path, undef); } qr/user agent not defined/, "check_marc21_mods_xsl(\$xsl_dir, \$useragent), useragent undef";
# #
SKIP: { ok( $marc21 = SLUB::LZA::SIPBuilderBagIt::get_marc21_from_catalogue($ppn), "get_marc21_from_catalogue(), valid");
skip "No response from server https://sru.bsz-bw.de/swb", 1 unless ! $response->is_error; like( $marc21, qr/<datafield tag="/, "get_marc21_from_catalogue(), valid");
like(SLUB::LZA::SIPBuilderBagIt::prepare_mods_section_with_ppn($ppn), qr//, "prepare_mods_section_with_ppn()"); throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from_catalogue(""); } qr/ppn not defined/, "get_marc21_from_catalogue(), invalid";
}; throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_from_catalogue(undef); } qr/ppn not defined/, "get_marc21_from_catalogue(), invalid";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::prepare_mods_section_with_ppn(""); } qr/invalid parameters/, "prepare_mods_section_with_ppn(), invalid parameters"; #
throws_ok{ SLUB::LZA::SIPBuilderBagIt::prepare_mods_section_with_ppn(undef); } qr/ppn not defined/, "prepare_mods_section_with_ppn(\$ppn), ppn undef"; is( SLUB::LZA::SIPBuilderBagIt::get_marc21_text_node($marc21, { tag => "245", code => "a", key => "Title" }), "Der Fichtelberg", "get_marc21_text_node(), valid");
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_text_node("", { tag => "245", code => "a", key => "Title" }); } qr/empty marc21/, "get_marc21_text_node(), invalid";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_text_node(undef, { tag => "245", code => "a", key => "Title" }); } qr/empty marc21/, "get_marc21_text_node(), invalid";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_text_node($marc21, "" ); } qr/not a mapping hash/, "get_marc21_text_node(), invalid";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_marc21_text_node($marc21, undef); } qr/not a mapping hash/, "get_marc21_text_node(), invalid";
#
ok( $mods = SLUB::LZA::SIPBuilderBagIt::get_mods_from_marc21($marc21), "get_mods_from_marc21(), valid");
like( $mods, qr/<mods.*xmlns="http:\/\/www\.loc\.gov\/mods\/v3\"/, "get_mods_from_marc21(), valid");
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from_marc21(""); } qr/marc21 empty/, "get_mods_from_marc21(), invalid";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::get_mods_from_marc21(undef); } qr/marc21 empty/, "get_mods_from_marc21(), invalid";
#
my @baginfo_got = @addBagInfo;
my @baginfo_expected = @addBagInfo;
push @baginfo_expected, (
{ "External-Identifier" => "PPN:457035137" },
{ "Title" => "Der Fichtelberg" },
{ "Title" => "Berg der unbekannten Rekorde" },
{ "Title" => "ein Film von Dirk Schneider" },
{ "Title" => "Der Osten - entdecke wo du lebst" }
);
ok( SLUB::LZA::SIPBuilderBagIt::add_metadata(\@baginfo_got, $ppn, $noppn, $marc21), "add_metadata(), valid");
is_deeply( \@baginfo_got, \@baginfo_expected, "add_metadata(), valid");
throws_ok{ SLUB::LZA::SIPBuilderBagIt::add_metadata("" , $ppn, $noppn, $marc21); } qr/not defined/, "add_metadata(), invalid";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::add_metadata(undef, $ppn, $noppn, $marc21); } qr/not defined/, "add_metadata(), invalid";
#
is( SLUB::LZA::SIPBuilderBagIt::checkForTitle(\@baginfo_expected), 1, "checkForTitle(), valid");
is( SLUB::LZA::SIPBuilderBagIt::checkForTitle(\@addBagInfo), 0, "checkForTitle(), valid"); # no 'Title'
throws_ok{ SLUB::LZA::SIPBuilderBagIt::checkForTitle(""); } qr/no array/, "checkForTitle(), invalid";
throws_ok{ SLUB::LZA::SIPBuilderBagIt::checkForTitle(undef); } qr/no array/, "checkForTitle(), invalid";
# #
# *************************************************************************** test new functions ******************************************************************************************************************
is(SLUB::LZA::SIPBuilderBagIt::generateBagName($exportToArchiveDate, $ppn, $noppn), "PPN-457035137_2020-08-05_10-26-11", "generateBagName()"); is(SLUB::LZA::SIPBuilderBagIt::generateBagName($exportToArchiveDate, $ppn, $noppn), "PPN-457035137_2020-08-05_10-26-11", "generateBagName()");
# #
my $output_dir = $output_path->child("dir"); my $output_dir = $output_path->child("dir");
...@@ -732,7 +770,6 @@ my $output_lidoFilePath = $output_metaPath->child("lido.xml"); ...@@ -732,7 +770,6 @@ my $output_lidoFilePath = $output_metaPath->child("lido.xml");
my $output_bubbleFilePath = $output_metaPath->child("bubble.xml"); my $output_bubbleFilePath = $output_metaPath->child("bubble.xml");
my $output_sameModsFilePath = $output_metaPath->child("1.xml"); my $output_sameModsFilePath = $output_metaPath->child("1.xml");
my $output_sameRightsFilePath = $output_metaPath->child("2.xml"); my $output_sameRightsFilePath = $output_metaPath->child("2.xml");
my $input_metaPath = path(__FILE__)->parent->parent->child('export_dir_kitodo')->child('bagit')->child("meta"); my $input_metaPath = path(__FILE__)->parent->parent->child('export_dir_kitodo')->child('bagit')->child("meta");
my $input_modsFilePath = $input_metaPath->child("mods.xml"); my $input_modsFilePath = $input_metaPath->child("mods.xml");
my $input_rightsFilePath = $input_metaPath->child("rights.xml"); my $input_rightsFilePath = $input_metaPath->child("rights.xml");
...@@ -740,7 +777,7 @@ my $input_lidoFilePath = $input_metaPath->child("lido.xml"); ...@@ -740,7 +777,7 @@ my $input_lidoFilePath = $input_metaPath->child("lido.xml");
my $input_bubbleFilePath = $input_metaPath->child("bubble.xml"); my $input_bubbleFilePath = $input_metaPath->child("bubble.xml");
my @input_addMetaFile = ($input_lidoFilePath, $input_bubbleFilePath, $input_modsFilePath, $input_rightsFilePath); my @input_addMetaFile = ($input_lidoFilePath, $input_bubbleFilePath, $input_modsFilePath, $input_rightsFilePath);
SLUB::LZA::SIPBuilderBagIt::createDir($output_metaPath); SLUB::LZA::SIPBuilderBagIt::createDir($output_metaPath);
SLUB::LZA::SIPBuilderBagIt::copyFilesToMeta($ppn, $noppn, $output_metaPath, $input_rightsFilePath, \@input_addMetaFile); SLUB::LZA::SIPBuilderBagIt::copyFilesToMeta($ppn, $noppn, $output_metaPath, $input_rightsFilePath, \@input_addMetaFile, $mods);
is(-f $output_modsFilePath, 1, "copyFilesToMeta() file $output_modsFilePath exists."); is(-f $output_modsFilePath, 1, "copyFilesToMeta() file $output_modsFilePath exists.");
is(-f $output_rightsFilePath, 1, "copyFilesToMeta() file $output_rightsFilePath exists."); is(-f $output_rightsFilePath, 1, "copyFilesToMeta() file $output_rightsFilePath exists.");
is(-f $output_lidoFilePath, 1, "copyFilesToMeta() file $output_lidoFilePath exists."); is(-f $output_lidoFilePath, 1, "copyFilesToMeta() file $output_lidoFilePath exists.");
...@@ -781,15 +818,6 @@ if($^O eq 'MSWin32'){ $system_prefix = 'win_'; } ...@@ -781,15 +818,6 @@ if($^O eq 'MSWin32'){ $system_prefix = 'win_'; }
my $ie = 'test'; my $ie = 'test';
my $bag = 'test_bag'; my $bag = 'test_bag';
my $valid_bag = $system_prefix . 'valid_test_bag'; my $valid_bag = $system_prefix . 'valid_test_bag';
my @addBagInfo;
push @addBagInfo, {'SLUBArchiv-sipVersion' => 'v2020.1'};
push @addBagInfo, {'SLUBArchiv-externalWorkflow' => 'kitodo'};
push @addBagInfo, {'SLUBArchiv-externalId' => '10008'};
push @addBagInfo, {'SLUBArchiv-externalIsilId' => 'DE-14'};
push @addBagInfo, {'SLUBArchiv-exportToArchiveDate' => '2020-08-05T10:26:11'};
push @addBagInfo, {'SLUBArchiv-hasConservationReason' => 'false'};
push @addBagInfo, {'SLUBArchiv-archivalValueDescription' => 'Gesetzlicher Auftrag'};
push @addBagInfo, {'SLUBArchiv-rightsVersion' => '1.0'};
my @addMetaFile = (); my @addMetaFile = ();
my $ie_input_path = $input_path . '/' . $ie; my $ie_input_path = $input_path . '/' . $ie;
my $bag_output_path = $output_path . '/' . $bag; my $bag_output_path = $output_path . '/' . $bag;
...@@ -801,7 +829,7 @@ SLUB::LZA::SIPBuilderBagIt::createDir($bag_output_path); ...@@ -801,7 +829,7 @@ SLUB::LZA::SIPBuilderBagIt::createDir($bag_output_path);
SLUB::LZA::SIPBuilderBagIt::createDir($data_output_path); SLUB::LZA::SIPBuilderBagIt::createDir($data_output_path);
File::Copy::Recursive::dircopy($ie_input_path, $data_output_path) or die "Could not perform dircopy() of $ie_input_path to autogenerated $data_output_path: $!"; File::Copy::Recursive::dircopy($ie_input_path, $data_output_path) or die "Could not perform dircopy() of $ie_input_path to autogenerated $data_output_path: $!";
SLUB::LZA::SIPBuilderBagIt::createDir($meta_output_path); SLUB::LZA::SIPBuilderBagIt::createDir($meta_output_path);
SLUB::LZA::SIPBuilderBagIt::copyFilesToMeta($ppn, $noppn, $meta_output_path, $input_rightsFilePath, \@addMetaFile); SLUB::LZA::SIPBuilderBagIt::copyFilesToMeta($ppn, $noppn, $meta_output_path, $input_rightsFilePath, \@addMetaFile, $mods);
ok(SLUB::LZA::SIPBuilderBagIt::create_slub_bagit($bag_output_path, \@addBagInfo), "create_slub_bagit()"); ok(SLUB::LZA::SIPBuilderBagIt::create_slub_bagit($bag_output_path, \@addBagInfo), "create_slub_bagit()");
throws_ok{ SLUB::LZA::SIPBuilderBagIt::create_slub_bagit(undef, \@addBagInfo); } qr/bagPath is not defined/, "create_slub_bagit(\$bagPath, \$refAddBagInfo), bagPath undef"; throws_ok{ SLUB::LZA::SIPBuilderBagIt::create_slub_bagit(undef, \@addBagInfo); } qr/bagPath is not defined/, "create_slub_bagit(\$bagPath, \$refAddBagInfo), bagPath undef";
...@@ -911,7 +939,5 @@ is(equalFilesByIgnoringCRLF_LF($bag_output_path . '/manifest-md5.txt', $valid_ba ...@@ -911,7 +939,5 @@ is(equalFilesByIgnoringCRLF_LF($bag_output_path . '/manifest-md5.txt', $valid_ba
is(equalFilesByIgnoringCRLF_LF($bag_output_path . '/manifest-sha512.txt', $valid_bag_path . '/manifest-sha512.txt'), 1, "create_slub_bagit() $bag: manifest-sha512.txt"); is(equalFilesByIgnoringCRLF_LF($bag_output_path . '/manifest-sha512.txt', $valid_bag_path . '/manifest-sha512.txt'), 1, "create_slub_bagit() $bag: manifest-sha512.txt");
is(equalFilesByIgnoringCRLF_LF($bag_output_path . '/tagmanifest-md5.txt', $valid_bag_path . '/tagmanifest-md5.txt'), 1, "create_slub_bagit() $bag: tagmanifest-md5.txt"); # workaround is(equalFilesByIgnoringCRLF_LF($bag_output_path . '/tagmanifest-md5.txt', $valid_bag_path . '/tagmanifest-md5.txt'), 1, "create_slub_bagit() $bag: tagmanifest-md5.txt"); # workaround
is(equalFilesByIgnoringCRLF_LF($bag_output_path . '/tagmanifest-sha512.txt', $valid_bag_path . '/tagmanifest-sha512.txt'), 1, "create_slub_bagit() $bag: tagmanifest-sha512.txt"); # workaround is(equalFilesByIgnoringCRLF_LF($bag_output_path . '/tagmanifest-sha512.txt', $valid_bag_path . '/tagmanifest-sha512.txt'), 1, "create_slub_bagit() $bag: tagmanifest-sha512.txt"); # workaround
#
1; 1;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment