From f5e8530dc59ff6ba9de78fab75c246e3b4b570e9 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 12 Apr 2017 15:19:33 -0300 Subject: [PATCH] Bug 18182: Tests all Koha::Objects-based modules Content-Type: text/plain; charset=utf-8 Signed-off-by: Marcel de Rooy Added test description on line 387. --- t/db_dependent/TestBuilder.t | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/t/db_dependent/TestBuilder.t b/t/db_dependent/TestBuilder.t index efce9c3..3d04950 100644 --- a/t/db_dependent/TestBuilder.t +++ b/t/db_dependent/TestBuilder.t @@ -21,7 +21,7 @@ use Modern::Perl; use Test::More tests => 12; use Test::Warn; -use Data::Dumper qw(Dumper); +use File::Basename qw(dirname); use Koha::Database; use Koha::Patrons; @@ -344,7 +344,7 @@ subtest 'Default values' => sub { subtest 'build_object() tests' => sub { - plan tests => 5; + plan tests => 6; $builder = t::lib::TestBuilder->new(); @@ -371,6 +371,22 @@ subtest 'build_object() tests' => sub { is( $issuing_rule, undef, 'If the class parameter is missing, undef is returned' ); + subtest 'Test all classes' => sub { + my $Koha_modules_dir = dirname(__FILE__) . '/../../Koha'; + my @koha_object_based_modules = `/bin/grep -rl 'sub object_class' $Koha_modules_dir`; + my @source_in_failure; + for my $module_filepath ( @koha_object_based_modules ) { + chomp $module_filepath; + next unless $module_filepath =~ m|\.pm$|; + my $module = $module_filepath; + $module =~ s|^.*/(Koha.*)\.pm$|$1|; + $module =~ s|/|::|g; + next if $module eq 'Koha::Objects'; + eval "require $module";; + my $object = $builder->build_object( { class => $module } ); + is( ref($object), $module->object_class, "Testing $module" ); + } + }; }; $schema->storage->txn_rollback; -- 2.1.4