View | Details | Raw Unified | Return to bug 10363
Collapse All | Expand All

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

Return to bug 10363