Line 0
Link Here
|
|
|
1 |
use Modern::Perl; |
2 |
use Test::More tests => 19; |
3 |
|
4 |
use C4::Context; |
5 |
use C4::Letters qw( GetLettersAvailableForALibrary DelLetter ); |
6 |
|
7 |
my $dbh = C4::Context->dbh; |
8 |
$dbh->{RaiseError} = 1; |
9 |
$dbh->{AutoCommit} = 0; |
10 |
|
11 |
$dbh->do(q|DELETE FROM letter|); |
12 |
|
13 |
my $letters = [ |
14 |
{ |
15 |
module => 'circulation', |
16 |
code => 'code1', |
17 |
branchcode => '', |
18 |
name => 'B default name for code1 circ', |
19 |
is_html => 0, |
20 |
title => 'default title for code1 email', |
21 |
content => 'default content for code1 email', |
22 |
message_transport_type => 'email', |
23 |
}, |
24 |
{ |
25 |
module => 'circulation', |
26 |
code => 'code1', |
27 |
branchcode => '', |
28 |
name => 'B default name for code1 circ', |
29 |
is_html => 0, |
30 |
title => 'default title for code1 sms', |
31 |
content => 'default content for code1 sms', |
32 |
message_transport_type => 'sms', |
33 |
}, |
34 |
{ |
35 |
module => 'circulation', |
36 |
code => 'code2', |
37 |
branchcode => '', |
38 |
name => 'A default name for code2 circ', |
39 |
is_html => 0, |
40 |
title => 'default title for code2 email', |
41 |
content => 'default content for code2 email', |
42 |
message_transport_type => 'email', |
43 |
}, |
44 |
{ |
45 |
module => 'circulation', |
46 |
code => 'code3', |
47 |
branchcode => '', |
48 |
name => 'C default name for code3 circ', |
49 |
is_html => 0, |
50 |
title => 'default title for code3 email', |
51 |
content => 'default content for code3 email', |
52 |
message_transport_type => 'email', |
53 |
}, |
54 |
|
55 |
{ |
56 |
module => 'cataloguing', |
57 |
code => 'code1', |
58 |
branchcode => '', |
59 |
name => 'default name for code1 cat', |
60 |
is_html => 0, |
61 |
title => 'default title for code1 cat email', |
62 |
content => 'default content for code1 cat email', |
63 |
message_transport_type => 'email', |
64 |
}, |
65 |
|
66 |
{ |
67 |
module => 'circulation', |
68 |
code => 'code1', |
69 |
branchcode => 'CPL', |
70 |
name => 'B CPL name for code1 circ', |
71 |
is_html => 0, |
72 |
title => 'CPL title for code1 email', |
73 |
content => 'CPL content for code1 email', |
74 |
message_transport_type => 'email', |
75 |
}, |
76 |
{ |
77 |
module => 'circulation', |
78 |
code => 'code2', |
79 |
branchcode => 'CPL', |
80 |
name => 'A CPL name for code1 circ', |
81 |
is_html => 0, |
82 |
title => 'CPL title for code1 sms', |
83 |
content => 'CPL content for code1 sms', |
84 |
message_transport_type => 'sms', |
85 |
}, |
86 |
{ |
87 |
module => 'circulation', |
88 |
code => 'code1', |
89 |
branchcode => 'MPL', |
90 |
name => 'B MPL name for code1 circ', |
91 |
is_html => 0, |
92 |
title => 'MPL title for code1 email', |
93 |
content => 'MPL content for code1 email', |
94 |
message_transport_type => 'email', |
95 |
}, |
96 |
]; |
97 |
|
98 |
my $sth = $dbh->prepare( |
99 |
q|INSERT INTO letter(module, code, branchcode, name, title, content, message_transport_type) VALUES (?, ?, ?, ?, ?, ?, ?)| |
100 |
); |
101 |
for my $l (@$letters) { |
102 |
$sth->execute( $l->{module}, $l->{code}, $l->{branchcode}, $l->{name}, |
103 |
$l->{title}, $l->{content}, $l->{message_transport_type} ); |
104 |
|
105 |
# GetLettersAvailableForALibrary does not return these fields |
106 |
delete $l->{title}; |
107 |
delete $l->{content}; |
108 |
delete $l->{is_html}; |
109 |
delete $l->{message_transport_type}; |
110 |
} |
111 |
|
112 |
my $available_letters; |
113 |
$available_letters = |
114 |
C4::Letters::GetLettersAvailableForALibrary( { module => 'circulation' } ); |
115 |
is( scalar(@$available_letters), |
116 |
3, 'There should be 3 default letters for circulation (3 distinct codes)' ); |
117 |
|
118 |
$available_letters = C4::Letters::GetLettersAvailableForALibrary( |
119 |
{ module => 'circulation', branchcode => '' } ); |
120 |
is( scalar(@$available_letters), 3, |
121 |
'There should be 3 default letters for circulation (3 distinct codes), branchcode=""' |
122 |
); |
123 |
is_deeply( $available_letters->[0], |
124 |
$letters->[2], 'The letters should be sorted by name (A)' ); |
125 |
is_deeply( $available_letters->[1], |
126 |
$letters->[0], 'The letters should be sorted by name (B)' ); |
127 |
is_deeply( $available_letters->[2], |
128 |
$letters->[3], 'The letters should be sorted by name (C)' ); |
129 |
|
130 |
$available_letters = C4::Letters::GetLettersAvailableForALibrary( |
131 |
{ module => 'circulation', branchcode => 'CPL' } ); |
132 |
is( scalar(@$available_letters), 3, |
133 |
'There should be 3 default letters for circulation (3 distinct codes), branchcode="CPL"' |
134 |
); |
135 |
is_deeply( $available_letters->[0], |
136 |
$letters->[6], 'The letters should be sorted by name (A)' ); |
137 |
is_deeply( $available_letters->[1], |
138 |
$letters->[5], 'The letters should be sorted by name (B)' ); |
139 |
is_deeply( $available_letters->[2], |
140 |
$letters->[3], 'The letters should be sorted by name (C)' ); |
141 |
|
142 |
$available_letters = C4::Letters::GetLettersAvailableForALibrary( |
143 |
{ module => 'circulation', branchcode => 'MPL' } ); |
144 |
is( scalar(@$available_letters), 3, |
145 |
'There should be 3 default letters for circulation (3 distinct codes), branchcode="CPL"' |
146 |
); |
147 |
is_deeply( $available_letters->[0], |
148 |
$letters->[2], 'The letters should be sorted by name (A)' ); |
149 |
is_deeply( $available_letters->[1], |
150 |
$letters->[7], 'The letters should be sorted by name (B)' ); |
151 |
is_deeply( $available_letters->[2], |
152 |
$letters->[3], 'The letters should be sorted by name (C)' ); |
153 |
|
154 |
my $letters_by_module = C4::Letters::GetLetters( { module => 'circulation' } ); |
155 |
is( scalar(@$letters_by_module), |
156 |
3, '3 different letter codes exist for circulation' ); |
157 |
|
158 |
my $letters_by_branchcode = C4::Letters::GetLetters( { branchcode => 'CPL' } ); |
159 |
is( scalar(@$letters_by_branchcode), |
160 |
2, '2 different letter codes exist for CPL' ); |
161 |
|
162 |
# On the way, we test DelLetter |
163 |
is( |
164 |
C4::Letters::DelLetter( |
165 |
{ module => 'cataloguing', code => 'code1', branchcode => 'MPL' } |
166 |
), |
167 |
'0E0', |
168 |
'No letter exist for MPL cat/code1' |
169 |
); |
170 |
is( |
171 |
C4::Letters::DelLetter( |
172 |
{ module => 'circulation', code => 'code1', branchcode => '' } |
173 |
), |
174 |
2, |
175 |
'2 default letters existed for circ/code1 (1 for email and 1 for sms)' |
176 |
); |
177 |
is( |
178 |
C4::Letters::DelLetter( |
179 |
{ |
180 |
module => 'circulation', |
181 |
code => 'code1', |
182 |
branchcode => 'CPL', |
183 |
mtt => 'email' |
184 |
} |
185 |
), |
186 |
1, |
187 |
'1 letter existed for CPL circ/code1/email' |
188 |
); |
189 |
is( |
190 |
C4::Letters::DelLetter( |
191 |
{ module => 'circulation', code => 'code1', branchcode => 'MPL' } |
192 |
), |
193 |
1, |
194 |
'1 letter existed for MPL circ/code1' |
195 |
); |