|
Line 0
Link Here
|
| 0 |
- |
1 |
#!/usr/bin/perl |
|
|
2 |
|
| 3 |
use Modern::Perl; |
| 4 |
use Test::More tests => 31; |
| 5 |
|
| 6 |
use Koha::AuthorisedValue; |
| 7 |
use Koha::AuthorisedValues; |
| 8 |
|
| 9 |
use Data::Dumper; # FIXME REMOVEME |
| 10 |
|
| 11 |
# Tests for Koha::AuthorisedValue |
| 12 |
|
| 13 |
# insert |
| 14 |
my $av1 = Koha::AuthorisedValue->new({ |
| 15 |
category => 'av_for_testing', |
| 16 |
authorised_value => 'value 1', |
| 17 |
lib => 'display value 1', |
| 18 |
lib_opac => 'opac display value 1', |
| 19 |
imageurl => 'image1.png', |
| 20 |
}); |
| 21 |
|
| 22 |
eval {$av1->insert}; |
| 23 |
ok( ! $@, 'AV 1 is inserted without error'); |
| 24 |
|
| 25 |
my $av1_bis = Koha::AuthorisedValue->new({ |
| 26 |
category => 'av_for_testing', |
| 27 |
authorised_value => 'value 1', |
| 28 |
lib => 'display value 2', |
| 29 |
lib_opac => 'opac display value 2', |
| 30 |
imageurl => 'image2.png', |
| 31 |
}); |
| 32 |
|
| 33 |
eval {$av1_bis->insert}; |
| 34 |
ok( $@, 'AV 2 is not inserted (error raised) : Unique key category-authorised_value'); |
| 35 |
|
| 36 |
my $id = $av1->{id}; |
| 37 |
ok( $av1->{id}, 'AV 1 is inserted' ); |
| 38 |
|
| 39 |
my $new_av1 = Koha::AuthorisedValue->new( { id => $id } )->fetch; |
| 40 |
|
| 41 |
is( $new_av1->{id}, $id, "insert: id has been correctly get back" ); |
| 42 |
is( $new_av1->{authorised_value}, $av1->{authorised_value}, "insert: authorised_value has been correctly get back" ); |
| 43 |
is( $new_av1->{lib}, $av1->{lib}, "insert: lib has been correctly get back" ); |
| 44 |
is( $new_av1->{lib_opac}, $av1->{lib_opac}, "insert: lib_opac has been correctly get back" ); |
| 45 |
is( $new_av1->{imageurl}, $av1->{imageurl}, "insert: imageurl has been correctly get back" ); |
| 46 |
is( $new_av1->{branches_limitations}, undef, "insert: branches_limitations is not get back with fetch" ); |
| 47 |
is_deeply( $new_av1->branches_limitations, [], "insert: The branches_limitations method returns the branches limitations" ); |
| 48 |
is_deeply( $new_av1->{branches_limitations}, [], "insert: The branches_limitations method set the branches_limitations key" ); |
| 49 |
|
| 50 |
# update |
| 51 |
$av1->{authorised_value} = 'new value 1'; |
| 52 |
$av1->{lib} = 'new lib 1'; |
| 53 |
$av1->{lib_opac} = 'new lib opac 1'; |
| 54 |
$av1->{imageurl} = 'new_image2.png'; |
| 55 |
my $branches_limitations = [ |
| 56 |
{branchcode => 'CPL', branchname => 'Centerville'}, |
| 57 |
{branchcode => 'MPL', branchname => 'Midway'}, |
| 58 |
]; |
| 59 |
$av1->{branches_limitations} = $branches_limitations; |
| 60 |
eval{$av1->update}; |
| 61 |
ok( ! $@, 'AV 1 is updated without error'); |
| 62 |
|
| 63 |
$new_av1 = Koha::AuthorisedValue->new( { id => $id } )->fetch; |
| 64 |
is( $new_av1->{id}, $id, "update: id has been correctly get back" ); |
| 65 |
is( $new_av1->{authorised_value}, 'new value 1', "update: authorised_value has been correctly get back" ); |
| 66 |
is( $new_av1->{lib}, 'new lib 1', "update: lib has been correctly get back" ); |
| 67 |
is( $new_av1->{lib_opac}, 'new lib opac 1', "update: lib_opac has been correctly get back" ); |
| 68 |
is( $new_av1->{imageurl}, 'new_image2.png', "update: imageurl has been correctly get back" ); |
| 69 |
is( $new_av1->{branches_limitations}, undef, "update: branches_limitations is not get back with fetch" ); |
| 70 |
is_deeply( $new_av1->branches_limitations, $branches_limitations, "update: The branches_limitations method returns the branches limitations" ); |
| 71 |
is_deeply( $new_av1->{branches_limitations}, $branches_limitations, "update: The branches_limitations method set the branches_limitations key" ); |
| 72 |
|
| 73 |
# delete |
| 74 |
eval{$av1->delete}; |
| 75 |
ok( ! $@, 'AV 1 is deleted without error' ); |
| 76 |
|
| 77 |
eval{ |
| 78 |
$new_av1 = Koha::AuthorisedValue->new( { id => $id } )->fetch; |
| 79 |
}; |
| 80 |
ok( $@, 'AV 1 is removed from the database' ); |
| 81 |
|
| 82 |
|
| 83 |
# Tests for Koha::AuthorisedValues |
| 84 |
$av1 = Koha::AuthorisedValue->new({ |
| 85 |
category => 'av_for_testing_1', |
| 86 |
authorised_value => 'value 1', |
| 87 |
lib => 'display value 1', |
| 88 |
lib_opac => 'opac display value 1', |
| 89 |
imageurl => 'image1.png', |
| 90 |
}); |
| 91 |
my $av2 = Koha::AuthorisedValue->new({ |
| 92 |
category => 'av_for_testing_1', |
| 93 |
authorised_value => 'value 2', |
| 94 |
lib => 'display value 2', |
| 95 |
lib_opac => 'opac display value 2', |
| 96 |
imageurl => 'image2.png', |
| 97 |
}); |
| 98 |
my $av3 = Koha::AuthorisedValue->new({ |
| 99 |
category => 'av_for_testing_1', |
| 100 |
authorised_value => 'value 3', |
| 101 |
lib => 'display value 3', |
| 102 |
lib_opac => 'opac display value 3', |
| 103 |
imageurl => 'image3.png', |
| 104 |
}); |
| 105 |
my $av4 = Koha::AuthorisedValue->new({ |
| 106 |
category => 'av_for_testing_2', |
| 107 |
authorised_value => 'value 4', |
| 108 |
lib => 'display value 4', |
| 109 |
lib_opac => 'opac display value 4', |
| 110 |
imageurl => 'image4.png', |
| 111 |
}); |
| 112 |
my $av5 = Koha::AuthorisedValue->new({ |
| 113 |
category => 'av_for_testing_2', |
| 114 |
authorised_value => 'value 5', |
| 115 |
lib => 'display value 5', |
| 116 |
lib_opac => 'opac display value 5', |
| 117 |
imageurl => 'image5.png', |
| 118 |
}); |
| 119 |
eval { |
| 120 |
$av1->insert; |
| 121 |
$av2->insert; |
| 122 |
$av3->insert; |
| 123 |
$av4->insert; |
| 124 |
$av5->insert; |
| 125 |
}; |
| 126 |
ok( ! $@, "5 AV inserted with success" ); |
| 127 |
my $avs = Koha::AuthorisedValues->new; |
| 128 |
|
| 129 |
# get categories |
| 130 |
my $categories = $avs->categories; |
| 131 |
is( grep ({/av_for_testing_1/} @$categories), 1, "av_for_testing_1 is a category"); |
| 132 |
is( grep ({/av_for_testing_2/} @$categories), 1, "av_for_testing_2 is a category"); |
| 133 |
is( grep ({/av_for_testing_3/} @$categories), 0, "av_for_testing_3 is not a category"); |
| 134 |
|
| 135 |
# filter |
| 136 |
my $avs1 = $avs->filter({category => 'av_for_testing_1'} ); |
| 137 |
my $avs2 = $avs->filter({category => 'av_for_testing_2'} ); |
| 138 |
is( scalar(@$avs1), 3, 'There are 3 AVs for category 1' ); |
| 139 |
is( scalar(@$avs2), 2, 'There are 2 AVs for category 2' ); |
| 140 |
|
| 141 |
# select |
| 142 |
$avs->select('value 5'); |
| 143 |
my $selected = $avs->filter( { selected => 1 } ); |
| 144 |
is( scalar(@$selected), 1, 'There is just 1 AV selected' ); |
| 145 |
$selected = shift @$selected; |
| 146 |
is( $selected->{selected}, 1, 'av is selected' ); |
| 147 |
is( $selected->{authorised_value}, 'value 5', 'av selected is "value 5"'); |
| 148 |
|
| 149 |
|
| 150 |
$av1->delete; |
| 151 |
$av2->delete; |
| 152 |
$av3->delete; |
| 153 |
$av4->delete; |
| 154 |
$av5->delete; |