From 0ce66fc39070718efec14d75a604f019fcf08cc5 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 4 Aug 2015 18:43:01 -0300 Subject: [PATCH] Bug 14646: (regression test) Koha::RecordProcessor only accepts one filter at a time This patch introduces new tests to t/RecordProcessor.t so it tests for creating processors with more than one filter. It does so by running my $processor = new Koha::RecordProcessor({ filters => ['Null','Dummy'] }); and testing the results. To test: - Apply the patch - Run: $ prove t/RecordProcessor.t => FAIL: tests related to multiple filters fail. --- t/RecordProcessor.t | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/t/RecordProcessor.t b/t/RecordProcessor.t index 7758e32..850ad39 100755 --- a/t/RecordProcessor.t +++ b/t/RecordProcessor.t @@ -17,8 +17,8 @@ # You should have received a copy of the GNU General Public License # along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; + use File::Spec; use MARC::Record; @@ -77,4 +77,37 @@ eval { ok(!$@, 'Destroyed processor successfully'); +subtest "new() tests" => sub { + + plan tests => 13; + + my $processor; + + # Create a processor with a valid filter + $processor = new Koha::RecordProcessor({ filters => 'Null' }); + is( ref($processor), 'Koha::RecordProcessor', 'Processor created' ); + is( scalar @{ $processor->filters }, 1, 'One filter initialized' ); + is( ref($processor->filters->[0]), 'Koha::Filter::MARC::Null', 'Correct filter initialized' ); + + # Create a processor with an invalid filter + $processor = new Koha::RecordProcessor({ filters => 'Dummy' }); + is( ref($processor), 'Koha::RecordProcessor', 'Processor created' ); + is( scalar @{ $processor->filters }, 0, 'No filter initialized' ); + is( ref($processor->filters->[0]), '', 'Make sure no filter initialized' ); + + # Create a processor with two valid filters + $processor = new Koha::RecordProcessor({ filters => [ 'Null', 'EmbedSeeFromHeadings' ] }); + is( ref($processor), 'Koha::RecordProcessor', 'Processor created' ); + is( scalar @{ $processor->filters }, 2, 'Two filters initialized' ); + is( ref($processor->filters->[0]), 'Koha::Filter::MARC::Null', 'Correct first filter initialized' ); + is( ref($processor->filters->[1]), 'Koha::Filter::MARC::EmbedSeeFromHeadings', 'Correct second filter initialized' ); + + # Create a processor with both valid and invalid filters. + $processor = new Koha::RecordProcessor({ filters => [ 'Null', 'Dummy' ] }); + is( ref($processor), 'Koha::RecordProcessor', 'Processor created' ); + is( scalar @{ $processor->filters }, 1, 'Invalid filter skipped' ); + is( ref($processor->filters->[0]), 'Koha::Filter::MARC::Null', 'Correct filter initialized' ); + +}; + done_testing(); -- 2.5.0