@@ -, +, @@ Koha::MarcMergeRulesModules --- Koha/MarcMergeRules.pm | 2 +- t/db_dependent/Biblio/MarcMergeRules.t | 53 +++++++++++++++------------------- 2 files changed, 25 insertions(+), 30 deletions(-) --- a/Koha/MarcMergeRules.pm +++ a/Koha/MarcMergeRules.pm @@ -301,7 +301,7 @@ Override C to clear marc merge rules cache. sub find_or_create { my $self = shift @_; $self->_clear_caches(); - $self->SUPER::find_or_create(@_); + return $self->SUPER::find_or_create(@_); } =head2 update --- a/t/db_dependent/Biblio/MarcMergeRules.t +++ a/t/db_dependent/Biblio/MarcMergeRules.t @@ -28,7 +28,6 @@ use Test::More tests => 23; use Test::MockModule; use Koha::MarcMergeRules; -use Koha::MarcMergeRulesModules; use t::lib::Mocks; @@ -45,10 +44,6 @@ $orig_record->append_fields ( MARC::Field->new('500', '','', 'a' => 'One bottle of beer in the fridge'), ); -my $modules_rs = Koha::MarcMergeRulesModules->search(undef, { order_by => { -desc => 'specificity' } }); -my @modules; -push @modules, $modules_rs->next; - my $incoming_record = MARC::Record->new(); $incoming_record->append_fields( MARC::Field->new('250', '', '', 'a' => '256 bottles of beer on the wall'), # Unchanged @@ -63,7 +58,7 @@ $incoming_record->append_fields( subtest 'Record fields has been overwritten when no merge rules are defined' => sub { plan tests => 4; - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); @@ -86,7 +81,7 @@ subtest 'Record fields has been overwritten when no merge rules are defined' => my $rule = Koha::MarcMergeRules->find_or_create({ tag => '*', - module => $modules[0]->name, + module => 'source', filter => '*', add => 0, append => 0, @@ -97,7 +92,7 @@ my $rule = Koha::MarcMergeRules->find_or_create({ subtest 'Record fields has been protected when matched merge all rule operations are set to "0"' => sub { plan tests => 3; - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 3, "Record has the expected number of fields"); @@ -127,7 +122,7 @@ subtest 'Only new fields has been added when add = 1, append = 0, remove = 0, de ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 5, "Record has the expected number of fields"); @@ -164,7 +159,7 @@ subtest 'Only appended fields has been added when add = 0, append = 1, remove = ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 4, "Record has the expected number of fields"); @@ -196,7 +191,7 @@ subtest 'Appended and added fields has been added when add = 1, append = 1, remo ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 6, "Record has the expected number of fields"); @@ -233,7 +228,7 @@ subtest 'Record fields has been only removed when add = 0, append = 0, remove = ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 2, "Record has the expected number of fields"); @@ -263,7 +258,7 @@ subtest 'Record fields has been added and removed when add = 1, append = 0, remo ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 4, "Record has the expected number of fields"); @@ -299,7 +294,7 @@ subtest 'Record fields has been appended and removed when add = 0, append = 1, r ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 3, "Record has the expected number of fields"); @@ -329,7 +324,7 @@ subtest 'Record fields has been added, appended and removed when add = 0, append ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 5, "Record has the expected number of fields"); @@ -366,7 +361,7 @@ subtest 'Record fields has been deleted when add = 0, append = 0, remove = 0, de ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 2, "Record has the expected number of fields"); @@ -391,7 +386,7 @@ subtest 'Record fields has been added and deleted when add = 1, append = 0, remo ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 4, "Record has the expected number of fields"); @@ -422,7 +417,7 @@ subtest 'Record fields has been appended and deleted when add = 0, append = 1, r ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 3, "Record has the expected number of fields"); @@ -447,7 +442,7 @@ subtest 'Record fields has been added, appended and deleted when add = 1, append ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 5, "Record has the expected number of fields"); @@ -478,7 +473,7 @@ subtest 'Record fields has been removed and deleted when add = 0, append = 0, re ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 1, "Record has the expected number of fields"); @@ -503,7 +498,7 @@ subtest 'Record fields has been added, removed and deleted when add = 1, append ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 3, "Record has the expected number of fields"); @@ -534,7 +529,7 @@ subtest 'Record fields has been appended, removed and deleted when add = 0, appe ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); cmp_ok(scalar @all_fields, '==', 2, "Record has the expected number of fields"); @@ -559,7 +554,7 @@ subtest 'Record fields has been overwritten when add = 1, append = 1, remove = 1 ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); @@ -585,7 +580,7 @@ subtest 'Record fields has been overwritten when add = 1, append = 1, remove = 1 # Protect field 500 with more specific tag value my $skip_all_rule = Koha::MarcMergeRules->find_or_create({ tag => '500', - module => $modules[0]->name, + module => 'source', filter => '*', add => 0, append => 0, @@ -596,7 +591,7 @@ my $skip_all_rule = Koha::MarcMergeRules->find_or_create({ subtest '"500" field has been protected when rule matching on tag "500" is add = 0, append = 0, remove = 0, delete = 0' => sub { plan tests => 4; - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); @@ -631,7 +626,7 @@ subtest '"5XX" fields has been protected when rule matching on regexp "5\d{2}" i ); $skip_all_rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); @@ -660,7 +655,7 @@ subtest 'Record fields has been overwritten when non wild card rule with filter ); $rule->store(); - my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { $modules[0]->name => 'test' }); + my $merged_record = Koha::MarcMergeRules->merge_records($orig_record, $incoming_record, { 'source' => 'test' }); my @all_fields = $merged_record->fields(); @@ -719,7 +714,7 @@ subtest 'context option in ModBiblio is handled correctly' => sub { $rule->set( { tag => '250', - module => $modules[0]->name, + module => 'source', filter => '*', 'add' => 0, 'append' => 0, @@ -754,7 +749,7 @@ subtest 'context option in ModBiblio is handled correctly' => sub { MARC::Field->new('500', '', '', 'a' => 'One cold bottle of beer in the fridge'), # Appended ); - ModBiblio($saved_record, $biblionumber, '', { context => { $modules[0]->name => 'test' } }); + ModBiblio($saved_record, $biblionumber, '', { context => { 'source' => 'test' } }); my $updated_record = GetMarcBiblio({ biblionumber => $biblionumber }); --