Bugzilla – Attachment 55648 Details for
Bug 17304
C4::Matcher::_get_match_keys is not tested
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[PASSED QA] Bug 17304: Introduce C4::Matcher::_get_match_keys unit tests
PASSED-QA-Bug-17304-Introduce-C4Matchergetmatchkey.patch (text/plain), 5.88 KB, created by
Katrin Fischer
on 2016-09-18 10:45:27 UTC
(
hide
)
Description:
[PASSED QA] Bug 17304: Introduce C4::Matcher::_get_match_keys unit tests
Filename:
MIME Type:
Creator:
Katrin Fischer
Created:
2016-09-18 10:45:27 UTC
Size:
5.88 KB
patch
obsolete
>From 347e6fe63b7eb0dade041c22d284ea5a517b5403 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Wed, 14 Sep 2016 16:00:19 -0300 >Subject: [PATCH] [PASSED QA] Bug 17304: Introduce C4::Matcher::_get_match_keys > unit tests > >This function is used in several places, but it's behaviour is not covered by tests, thus trying to patch it can be problematic without introducing regressions. > >This patch introduces unit tests for it, in the t/Matcher.t file. > >To test: >- Apply the patch >- Run: > $ prove t/Matcher.t >=> SUCCESS: Tests pass >- Sign off :-D > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> > >Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de> >--- > t/Matcher.t | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 162 insertions(+), 1 deletion(-) > >diff --git a/t/Matcher.t b/t/Matcher.t >index 652f061..aac83b0 100755 >--- a/t/Matcher.t >+++ b/t/Matcher.t >@@ -20,11 +20,13 @@ use Modern::Perl; > use Test::More; > use Test::MockModule; > >+use MARC::Record; >+ > use Module::Load::Conditional qw/check_install/; > > BEGIN { > if ( check_install( module => 'Test::DBIx::Class' ) ) { >- plan tests => 11; >+ plan tests => 12; > } else { > plan skip_all => "Need Test::DBIx::Class" > } >@@ -82,4 +84,163 @@ $testmatcher->description('match on ISSN'); > > is( $testmatcher->description(), 'match on ISSN', 'testing code accessor' ); > >+subtest '_get_match_keys() tests' => sub { >+ >+ plan tests => 8; >+ >+ my $matchpoint = get_title_matchpoint({ >+ length => 0, >+ norms => [], >+ offset => 0 >+ }); >+ >+ my $record = MARC::Record->new(); >+ $record->append_fields( >+ MARC::Field->new('100', '1', ' ', >+ a => 'King, Stephen', >+ d => 'd1947-'), >+ MARC::Field->new('245', ' ', ' ', >+ a => ' .; thE t[]:,aliS(m)/An\'"', >+ c => 'Stephen King, Peter Straub.' ), >+ MARC::Field->new('700', ' ', ' ', >+ a => 'Straub, Peter', >+ d => '1943-') >+ ); >+ >+ my @keys = C4::Matcher::_get_match_keys( $record, $matchpoint ); >+ >+ is( $keys[0], 'THE TALISMAN STEPHEN KING PETER STRAUB', >+ 'Match key correctly calculated with no $norms'); >+ >+ $matchpoint = get_title_matchpoint({ >+ length => 9, >+ norms => [], >+ offset => 0 >+ }); >+ @keys = C4::Matcher::_get_match_keys( $record, $matchpoint ); >+ is( $keys[0], 'THE', >+ 'Match key correctly calculated with length 9'); >+ >+ $matchpoint = get_title_matchpoint({ >+ length => 9, >+ norms => [], >+ offset => 1 >+ }); >+ @keys = C4::Matcher::_get_match_keys( $record, $matchpoint ); >+ is( $keys[0], 'THE', >+ 'Match key correctly calculated with length 9 and offset 1'); >+ >+ $matchpoint = get_title_matchpoint({ >+ length => 9, >+ norms => [], >+ offset => 2 >+ }); >+ @keys = C4::Matcher::_get_match_keys( $record, $matchpoint ); >+ is( $keys[0], 'THE T', >+ 'Match key correctly calculated with length 9 and offset 2, should not remove space'); >+ >+ $matchpoint = get_authors_matchpoint({ >+ length => 0, >+ norms => [], >+ offset => 0 >+ }); >+ @keys = C4::Matcher::_get_match_keys( $record, $matchpoint ); >+ is( $keys[0], 'STRAUB PETER KING STEPHEN', >+ 'Match key correctly calculated with multiple components'); >+ >+ $matchpoint = get_authors_matchpoint({ >+ length => 9, >+ norms => [], >+ offset => 0 >+ }); >+ @keys = C4::Matcher::_get_match_keys( $record, $matchpoint ); >+ is( $keys[0], 'STRAUB KING ST', >+ 'Match key correctly calculated with multiple components, length 9'); >+ >+ $matchpoint = get_authors_matchpoint({ >+ length => 10, >+ norms => [], >+ offset => 0 >+ }); >+ @keys = C4::Matcher::_get_match_keys( $record, $matchpoint ); >+ is( $keys[0], 'STRAUB P KING STE', >+ 'Match key correctly calculated with multiple components, length 10'); >+ >+ $matchpoint = get_authors_matchpoint({ >+ length => 10, >+ norms => [], >+ offset => 2 >+ }); >+ @keys = C4::Matcher::_get_match_keys( $record, $matchpoint ); >+ is( $keys[0], 'TRAUB PET ING STEPH', >+ 'Match key correctly calculated with multiple components, length 10, offset 1'); >+}; >+ >+sub get_title_matchpoint { >+ >+ my $params = shift; >+ >+ my $length = $params->{length} // 0; >+ my $norms = $params->{norms} // []; >+ my $offset = $params->{offset} // 0; >+ >+ my $matchpoint = { >+ components => [ >+ { >+ length => $length, >+ norms => $norms, >+ offset => $offset, >+ subfields => >+ { >+ a => 1, >+ c => 1 >+ }, >+ tag => '245' >+ } >+ ], >+ index => "title", >+ score => 1000 >+ }; >+ >+ return $matchpoint; >+} >+ >+sub get_authors_matchpoint { >+ >+ my $params = shift; >+ >+ my $length = $params->{length} // 0; >+ my $norms = $params->{norms} // []; >+ my $offset = $params->{offset} // 0; >+ >+ my $matchpoint = { >+ components => [ >+ { >+ length => $length, >+ norms => $norms, >+ offset => $offset, >+ subfields => >+ { >+ a => 1 >+ }, >+ tag => '700' >+ }, >+ { >+ length => $length, >+ norms => $norms, >+ offset => $offset, >+ subfields => >+ { >+ a => 1 >+ }, >+ tag => '100' >+ } >+ ], >+ index => "author", >+ score => 1000 >+ }; >+ >+ return $matchpoint; >+} >+ > 1; >-- >2.7.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 17304
:
55574
|
55603
| 55648