Lines 1-7
Link Here
|
1 |
#!/usr/bin/perl |
1 |
#!/usr/bin/perl |
2 |
|
2 |
|
|
|
3 |
# This file is part of Koha. |
4 |
# |
5 |
# Koha is free software; you can redistribute it and/or modify it |
6 |
# under the terms of the GNU General Public License as published by |
7 |
# the Free Software Foundation; either version 3 of the License, or |
8 |
# (at your option) any later version. |
9 |
# |
10 |
# Koha is distributed in the hope that it will be useful, but |
11 |
# WITHOUT ANY WARRANTY; without even the implied warranty of |
12 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 |
# GNU General Public License for more details. |
14 |
# |
15 |
# You should have received a copy of the GNU General Public License |
16 |
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
17 |
|
3 |
use Modern::Perl; |
18 |
use Modern::Perl; |
4 |
use Test::More tests => 7; |
19 |
use Test::More tests => 7; |
|
|
20 |
use Test::Exception; |
21 |
|
5 |
use DateTime::Duration; |
22 |
use DateTime::Duration; |
6 |
|
23 |
|
7 |
use C4::Context; |
24 |
use C4::Context; |
Lines 763-768
subtest 'cannot_be_transferred' => sub {
Link Here
|
763 |
|
780 |
|
764 |
$schema->storage->txn_rollback; |
781 |
$schema->storage->txn_rollback; |
765 |
|
782 |
|
|
|
783 |
subtest 'filter_by_public() tests' => sub { |
784 |
|
785 |
plan tests => 4; |
786 |
|
787 |
$schema->storage->txn_begin; |
788 |
|
789 |
my $list_1 = $builder->build_object( |
790 |
{ |
791 |
class => 'Koha::Virtualshelves', |
792 |
value => { public => 0 } |
793 |
} |
794 |
); |
795 |
my $list_2 = $builder->build_object( |
796 |
{ |
797 |
class => 'Koha::Virtualshelves', |
798 |
value => { public => 1 } |
799 |
} |
800 |
); |
801 |
my $list_3 = $builder->build_object( |
802 |
{ |
803 |
class => 'Koha::Virtualshelves', |
804 |
value => { public => 1 } |
805 |
} |
806 |
); |
807 |
|
808 |
my $lists = Koha::Virtualshelves->search( { shelfnumber => [ $list_1->id, $list_2->id, $list_3->id ] } ); |
809 |
|
810 |
is( $lists->count, 3, 'Our three lists are returned' ); |
811 |
$lists = $lists->filter_by_public; |
812 |
|
813 |
is( $lists->count, 2, 'Our two public lists are returned' ); |
814 |
|
815 |
while ( my $list = $lists->next ) { |
816 |
ok( $list->public, 'Only public lists in the resultset' ); |
817 |
} |
818 |
|
819 |
$schema->storage->txn_rollback; |
820 |
}; |
821 |
|
822 |
subtest 'filter_by_readable() tests' => sub { |
823 |
|
824 |
plan tests => 6; |
825 |
|
826 |
$schema->storage->txn_begin; |
827 |
|
828 |
my $patron_1 = $builder->build_object( { class => 'Koha::Patrons' } ); |
829 |
my $patron_2 = $builder->build_object( { class => 'Koha::Patrons' } ); |
830 |
|
831 |
my $list_1 = $builder->build_object( |
832 |
{ |
833 |
class => 'Koha::Virtualshelves', |
834 |
value => { |
835 |
public => 0, |
836 |
owner => $patron_1->id, |
837 |
} |
838 |
} |
839 |
); |
840 |
my $list_2 = $builder->build_object( |
841 |
{ |
842 |
class => 'Koha::Virtualshelves', |
843 |
value => { |
844 |
public => 1, |
845 |
owner => $patron_1->id, |
846 |
} |
847 |
} |
848 |
); |
849 |
my $list_3 = $builder->build_object( |
850 |
{ |
851 |
class => 'Koha::Virtualshelves', |
852 |
value => { |
853 |
public => 0, |
854 |
owner => $patron_2->id, |
855 |
} |
856 |
} |
857 |
); |
858 |
my $list_4 = $builder->build_object( |
859 |
{ |
860 |
class => 'Koha::Virtualshelves', |
861 |
value => { |
862 |
public => 1, |
863 |
owner => $patron_2->id, |
864 |
} |
865 |
} |
866 |
); |
867 |
|
868 |
my $lists = |
869 |
Koha::Virtualshelves->search( { shelfnumber => [ $list_1->id, $list_2->id, $list_3->id, $list_4->id ] } ); |
870 |
|
871 |
is( $lists->count, 4, 'Our four lists are returned' ); |
872 |
|
873 |
throws_ok { $lists->filter_by_readable; } |
874 |
'Koha::Exceptions::MissingParameter', |
875 |
'Exception thrown on missing'; |
876 |
|
877 |
$lists = $lists->filter_by_readable( { patron_id => $patron_1->id } ); |
878 |
|
879 |
is( $lists->count, 3, 'Three lists are returned' ); |
880 |
|
881 |
while ( my $list = $lists->next ) { |
882 |
ok( $list->owner == $patron_1->id || $list->public, 'Only public or self lists in the resultset' ); |
883 |
} |
884 |
|
885 |
$schema->storage->txn_rollback; |
886 |
}; |
887 |
|
766 |
sub teardown { |
888 |
sub teardown { |
767 |
$dbh->do(q|DELETE FROM virtualshelfshares|); |
889 |
$dbh->do(q|DELETE FROM virtualshelfshares|); |
768 |
$dbh->do(q|DELETE FROM virtualshelfcontents|); |
890 |
$dbh->do(q|DELETE FROM virtualshelfcontents|); |
769 |
- |
|
|