Bug 18403: Add new method Koha::Library->library_group
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 6 Apr 2017 19:09:46 +0000 (16:09 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 12 Feb 2018 18:41:36 +0000 (15:41 -0300)
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 <jon.mcgowan@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Koha/Library.pm
t/db_dependent/LibraryGroups.t

index 5862aa8..9e6d616 100644 (file)
@@ -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
index 52bde20..69c6fa0 100644 (file)
@@ -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();