From e0b3b5c5cf5d65eeb3de6808fc37a6892596c0d3 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 --- 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..e5741cc 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 ); + } + }; }; $schema->storage->txn_rollback; -- 2.9.3