From 6e14fd52761f709f0644fe3a59700895cb1e7f87 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 6 Apr 2017 16:09:46 -0300 Subject: [PATCH] Bug 18403: Add new method Koha::Library->library_group This is more a follow-up for bug 15707. It could be moved on its own bug report if necessary. Test plan: prove t/db_dependent/LibraryGroups.t should return green Signed-off-by: Signed-off-by: Jon McGowan Signed-off-by: Jonathan Druart --- Koha/Library.pm | 12 ++++++++++++ t/db_dependent/LibraryGroups.t | 17 ++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/Koha/Library.pm b/Koha/Library.pm index 5862aa8b8c..9e6d616036 100644 --- a/Koha/Library.pm +++ b/Koha/Library.pm @@ -56,6 +56,18 @@ sub get_effective_marcorgcode { return $self->marcorgcode || C4::Context->preference("MARCOrgCode"); } +=head3 library_groups + +Return the Library groups of this library + +=cut + +sub library_groups { + my ( $self ) = @_; + my $rs = $self->_result->library_groups; + return Koha::Library::Groups->_new_from_dbic( $rs ); +} + =head2 Internal methods =head3 _type diff --git a/t/db_dependent/LibraryGroups.t b/t/db_dependent/LibraryGroups.t index 52bde2050b..69c6fa03ce 100644 --- a/t/db_dependent/LibraryGroups.t +++ b/t/db_dependent/LibraryGroups.t @@ -4,7 +4,7 @@ use Modern::Perl; use List::MoreUtils 'any'; -use Test::More tests => 15; +use Test::More tests => 16; use t::lib::TestBuilder; @@ -42,8 +42,10 @@ ok( $in_list, 'New root group is in the list returned by the get_root_groups met my $groupA = Koha::Library::Group->new({ parent_id => $root_group->id, title => 'Group A' })->store(); my $groupA1 = Koha::Library::Group->new({ parent_id => $groupA->id, title => 'Group A1' })->store(); my $groupA2 = Koha::Library::Group->new({ parent_id => $groupA->id, title => 'Group A2' })->store(); +my $groupB = Koha::Library::Group->new({ parent_id => $root_group->id, title => 'Group B' })->store(); my $groupA_library1 = Koha::Library::Group->new({ parent_id => $groupA->id, branchcode => $library1->{branchcode} })->store(); +my $groupB_library1 = Koha::Library::Group->new({ parent_id => $groupB->id, branchcode => $library1->{branchcode} })->store(); my $groupA1_library2 = Koha::Library::Group->new({ parent_id => $groupA1->id, branchcode => $library2->{branchcode} })->store(); my @children = $root_group->children()->as_list(); @@ -69,6 +71,19 @@ ok( !$in_list, 'Method libraries_not_direct_children returns all libraries not d $in_list = any { $_->id eq $groupA1_library2->branchcode } @libraries_not_direct_children; ok( $in_list, 'Method libraries_not_direct_children returns all libraries not direct descendants of group, library 2 is in the list'); +subtest 'Koha::Library->library_groups' => sub { + plan tests => 4; + my $library3 = Koha::Libraries->find( $library3->{branchcode} ); + my $groups = $library3->library_groups; + is( ref( $groups ), 'Koha::Library::Groups', 'Koha::Library->library_groups should return Koha::Library::Groups' ); + is( $groups->count, 0, 'Library 3 should not be part of any groups'); + + my $library1 = Koha::Libraries->find( $library1->{branchcode} ); + $groups = $library1->library_groups; + is( ref( $groups ), 'Koha::Library::Groups', 'Koha::Library->library_groups should return Koha::Library::Groups' ); + is( $groups->count, 2, 'Library 1 should be part of 2 groups' ); +}; + my $groupX = Koha::Library::Group->new( { title => "Group X" } )->store(); my $groupX_library1 = Koha::Library::Group->new({ parent_id => $groupX->id, branchcode => $library1->{branchcode} })->store(); my $groupX_library2 = Koha::Library::Group->new({ parent_id => $groupX->id, branchcode => $library2->{branchcode} })->store(); -- 2.39.5