|
Lines 28-36
use C4::Context;
Link Here
|
| 28 |
|
28 |
|
| 29 |
use Koha::Notice::Templates; |
29 |
use Koha::Notice::Templates; |
| 30 |
use Koha::Patron::Categories; |
30 |
use Koha::Patron::Categories; |
| 31 |
use Koha::Patron::Message::Attributes; |
31 |
use Koha::Patron::MessagePreference::Attributes; |
| 32 |
use Koha::Patron::Message::Transport::Types; |
32 |
use Koha::Patron::MessagePreference::Transport::Types; |
| 33 |
use Koha::Patron::Message::Transports; |
33 |
use Koha::Patron::MessagePreference::Transports; |
| 34 |
use Koha::Patrons; |
34 |
use Koha::Patrons; |
| 35 |
|
35 |
|
| 36 |
use File::Temp qw/tempfile/; |
36 |
use File::Temp qw/tempfile/; |
|
Lines 42-60
my $builder = t::lib::TestBuilder->new;
Link Here
|
| 42 |
subtest 'Test class imports' => sub { |
42 |
subtest 'Test class imports' => sub { |
| 43 |
plan tests => 2; |
43 |
plan tests => 2; |
| 44 |
|
44 |
|
| 45 |
use_ok('Koha::Patron::Message::Preference'); |
45 |
use_ok('Koha::Patron::MessagePreference'); |
| 46 |
use_ok('Koha::Patron::Message::Preferences'); |
46 |
use_ok('Koha::Patron::MessagePreferences'); |
| 47 |
}; |
47 |
}; |
| 48 |
|
48 |
|
| 49 |
subtest 'Test Koha::Patron::Message::Preferences' => sub { |
49 |
subtest 'Test Koha::Patron::MessagePreferences' => sub { |
| 50 |
plan tests => 2; |
50 |
plan tests => 2; |
| 51 |
|
51 |
|
| 52 |
$schema->storage->txn_begin; |
52 |
$schema->storage->txn_begin; |
| 53 |
|
53 |
|
| 54 |
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' }); |
54 |
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' }); |
| 55 |
my $letter = build_a_test_letter(); |
55 |
my $letter = build_a_test_letter(); |
| 56 |
my $mtt = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' }); |
56 |
my $mtt = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' }); |
| 57 |
Koha::Patron::Message::Transport->new({ |
57 |
Koha::Patron::MessagePreference::Transport->new({ |
| 58 |
message_attribute_id => $attribute->message_attribute_id, |
58 |
message_attribute_id => $attribute->message_attribute_id, |
| 59 |
message_transport_type => $mtt->message_transport_type, |
59 |
message_transport_type => $mtt->message_transport_type, |
| 60 |
is_digest => 0, |
60 |
is_digest => 0, |
|
Lines 66-79
subtest 'Test Koha::Patron::Message::Preferences' => sub {
Link Here
|
| 66 |
plan tests => 3; |
66 |
plan tests => 3; |
| 67 |
|
67 |
|
| 68 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
68 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
| 69 |
Koha::Patron::Message::Preference->new({ |
69 |
Koha::Patron::MessagePreference->new({ |
| 70 |
borrowernumber => $patron->borrowernumber, |
70 |
borrowernumber => $patron->borrowernumber, |
| 71 |
message_attribute_id => $attribute->message_attribute_id, |
71 |
message_attribute_id => $attribute->message_attribute_id, |
| 72 |
wants_digest => 0, |
72 |
wants_digest => 0, |
| 73 |
days_in_advance => undef, |
73 |
days_in_advance => undef, |
| 74 |
})->store; |
74 |
})->store; |
| 75 |
|
75 |
|
| 76 |
my $preference = Koha::Patron::Message::Preferences->find({ |
76 |
my $preference = Koha::Patron::MessagePreferences->find({ |
| 77 |
borrowernumber => $patron->borrowernumber, |
77 |
borrowernumber => $patron->borrowernumber, |
| 78 |
message_attribute_id => $attribute->message_attribute_id |
78 |
message_attribute_id => $attribute->message_attribute_id |
| 79 |
}); |
79 |
}); |
|
Lines 83-98
subtest 'Test Koha::Patron::Message::Preferences' => sub {
Link Here
|
| 83 |
subtest 'Test set not throwing an exception on duplicate object' => sub { |
83 |
subtest 'Test set not throwing an exception on duplicate object' => sub { |
| 84 |
plan tests => 1; |
84 |
plan tests => 1; |
| 85 |
|
85 |
|
| 86 |
Koha::Patron::Message::Attributes->find({ |
86 |
Koha::Patron::MessagePreference::Attributes->find({ |
| 87 |
message_attribute_id => $attribute->message_attribute_id |
87 |
message_attribute_id => $attribute->message_attribute_id |
| 88 |
})->set({ takes_days => 1 })->store; |
88 |
})->set({ takes_days => 1 })->store; |
| 89 |
$preference->set({ days_in_advance => 1 })->store; |
89 |
$preference->set({ days_in_advance => 1 })->store; |
| 90 |
is(ref($preference), 'Koha::Patron::Message::Preference', |
90 |
is(ref($preference), 'Koha::Patron::MessagePreference', |
| 91 |
'Updating the preference does not cause duplicate object exception'); |
91 |
'Updating the preference does not cause duplicate object exception'); |
| 92 |
}; |
92 |
}; |
| 93 |
|
93 |
|
| 94 |
$preference->delete; |
94 |
$preference->delete; |
| 95 |
is(Koha::Patron::Message::Preferences->search({ |
95 |
is(Koha::Patron::MessagePreferences->search({ |
| 96 |
borrowernumber => $patron->borrowernumber, |
96 |
borrowernumber => $patron->borrowernumber, |
| 97 |
message_attribute_id => $attribute->message_attribute_id |
97 |
message_attribute_id => $attribute->message_attribute_id |
| 98 |
})->count, 0, 'Deleted the messaging preference.'); |
98 |
})->count, 0, 'Deleted the messaging preference.'); |
|
Lines 100-113
subtest 'Test Koha::Patron::Message::Preferences' => sub {
Link Here
|
| 100 |
|
100 |
|
| 101 |
subtest 'Test for a category' => sub { |
101 |
subtest 'Test for a category' => sub { |
| 102 |
my $category = $builder->build_object({ class => 'Koha::Patron::Categories' }); |
102 |
my $category = $builder->build_object({ class => 'Koha::Patron::Categories' }); |
| 103 |
Koha::Patron::Message::Preference->new({ |
103 |
Koha::Patron::MessagePreference->new({ |
| 104 |
categorycode => $category->categorycode, |
104 |
categorycode => $category->categorycode, |
| 105 |
message_attribute_id => $attribute->message_attribute_id, |
105 |
message_attribute_id => $attribute->message_attribute_id, |
| 106 |
wants_digest => 0, |
106 |
wants_digest => 0, |
| 107 |
days_in_advance => undef, |
107 |
days_in_advance => undef, |
| 108 |
})->store; |
108 |
})->store; |
| 109 |
|
109 |
|
| 110 |
my $preference = Koha::Patron::Message::Preferences->find({ |
110 |
my $preference = Koha::Patron::MessagePreferences->find({ |
| 111 |
categorycode => $category->categorycode, |
111 |
categorycode => $category->categorycode, |
| 112 |
message_attribute_id => $attribute->message_attribute_id |
112 |
message_attribute_id => $attribute->message_attribute_id |
| 113 |
}); |
113 |
}); |
|
Lines 115-121
subtest 'Test Koha::Patron::Message::Preferences' => sub {
Link Here
|
| 115 |
'Added a new messaging preference for category.'); |
115 |
'Added a new messaging preference for category.'); |
| 116 |
|
116 |
|
| 117 |
$preference->delete; |
117 |
$preference->delete; |
| 118 |
is(Koha::Patron::Message::Preferences->search({ |
118 |
is(Koha::Patron::MessagePreferences->search({ |
| 119 |
categorycode => $category->categorycode, |
119 |
categorycode => $category->categorycode, |
| 120 |
message_attribute_id => $attribute->message_attribute_id |
120 |
message_attribute_id => $attribute->message_attribute_id |
| 121 |
})->count, 0, 'Deleted the messaging preference.'); |
121 |
})->count, 0, 'Deleted the messaging preference.'); |
|
Lines 124-154
subtest 'Test Koha::Patron::Message::Preferences' => sub {
Link Here
|
| 124 |
$schema->storage->txn_rollback; |
124 |
$schema->storage->txn_rollback; |
| 125 |
}; |
125 |
}; |
| 126 |
|
126 |
|
| 127 |
subtest 'Test Koha::Patron::Message::Preferences->get_options' => sub { |
127 |
subtest 'Test Koha::Patron::MessagePreferences->get_options' => sub { |
| 128 |
plan tests => 2; |
128 |
plan tests => 2; |
| 129 |
|
129 |
|
| 130 |
subtest 'Test method availability and return value' => sub { |
130 |
subtest 'Test method availability and return value' => sub { |
| 131 |
plan tests => 3; |
131 |
plan tests => 3; |
| 132 |
|
132 |
|
| 133 |
ok(Koha::Patron::Message::Preferences->can('get_options'), |
133 |
ok(Koha::Patron::MessagePreferences->can('get_options'), |
| 134 |
'Method get_options is available.'); |
134 |
'Method get_options is available.'); |
| 135 |
ok(my $options = Koha::Patron::Message::Preferences->get_options, |
135 |
ok(my $options = Koha::Patron::MessagePreferences->get_options, |
| 136 |
'Called get_options successfully.'); |
136 |
'Called get_options successfully.'); |
| 137 |
is(ref($options), 'ARRAY', 'get_options returns a ARRAYref'); |
137 |
is(ref($options), 'ARRAY', 'get_options returns a ARRAYref'); |
| 138 |
}; |
138 |
}; |
| 139 |
|
139 |
|
| 140 |
subtest 'Make sure options are correct' => sub { |
140 |
subtest 'Make sure options are correct' => sub { |
| 141 |
$schema->storage->txn_begin; |
141 |
$schema->storage->txn_begin; |
| 142 |
my $options = Koha::Patron::Message::Preferences->get_options; |
142 |
my $options = Koha::Patron::MessagePreferences->get_options; |
| 143 |
|
143 |
|
| 144 |
foreach my $option (@$options) { |
144 |
foreach my $option (@$options) { |
| 145 |
my $n = $option->{'message_name'}; |
145 |
my $n = $option->{'message_name'}; |
| 146 |
my $attr = Koha::Patron::Message::Attributes->find($option->{'message_attribute_id'}); |
146 |
my $attr = Koha::Patron::MessagePreference::Attributes->find($option->{'message_attribute_id'}); |
| 147 |
is($option->{'message_attribute_id'}, $attr->message_attribute_id, |
147 |
is($option->{'message_attribute_id'}, $attr->message_attribute_id, |
| 148 |
'$n: message_attribute_id is set'); |
148 |
'$n: message_attribute_id is set'); |
| 149 |
is($option->{'message_name'}, $attr->message_name, '$n: message_name is set'); |
149 |
is($option->{'message_name'}, $attr->message_name, '$n: message_name is set'); |
| 150 |
is($option->{'takes_days'}, $attr->takes_days, '$n: takes_days is set'); |
150 |
is($option->{'takes_days'}, $attr->takes_days, '$n: takes_days is set'); |
| 151 |
my $transports = Koha::Patron::Message::Transports->search({ |
151 |
my $transports = Koha::Patron::MessagePreference::Transports->search({ |
| 152 |
message_attribute_id => $option->{'message_attribute_id'}, |
152 |
message_attribute_id => $option->{'message_attribute_id'}, |
| 153 |
is_digest => $option->{'has_digest'} || 0, |
153 |
is_digest => $option->{'has_digest'} || 0, |
| 154 |
}); |
154 |
}); |
|
Lines 171-196
subtest 'Add preferences from defaults' => sub {
Link Here
|
| 171 |
my ($default, $mtt1, $mtt2) = build_a_test_category_preference({ |
171 |
my ($default, $mtt1, $mtt2) = build_a_test_category_preference({ |
| 172 |
patron => $patron, |
172 |
patron => $patron, |
| 173 |
}); |
173 |
}); |
| 174 |
ok(Koha::Patron::Message::Preference->new_from_default({ |
174 |
ok(Koha::Patron::MessagePreference->new_from_default({ |
| 175 |
borrowernumber => $patron->borrowernumber, |
175 |
borrowernumber => $patron->borrowernumber, |
| 176 |
categorycode => $patron->categorycode, |
176 |
categorycode => $patron->categorycode, |
| 177 |
message_attribute_id => $default->message_attribute_id, |
177 |
message_attribute_id => $default->message_attribute_id, |
| 178 |
})->store, 'Added a default preference to patron.'); |
178 |
})->store, 'Added a default preference to patron.'); |
| 179 |
ok(my $pref = Koha::Patron::Message::Preferences->find({ |
179 |
ok(my $pref = Koha::Patron::MessagePreferences->find({ |
| 180 |
borrowernumber => $patron->borrowernumber, |
180 |
borrowernumber => $patron->borrowernumber, |
| 181 |
message_attribute_id => $default->message_attribute_id, |
181 |
message_attribute_id => $default->message_attribute_id, |
| 182 |
}), 'Found the default preference from patron.'); |
182 |
}), 'Found the default preference from patron.'); |
| 183 |
is(Koha::Patron::Message::Transport::Preferences->search({ |
183 |
is(Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 184 |
borrower_message_preference_id => $pref->borrower_message_preference_id |
184 |
borrower_message_preference_id => $pref->borrower_message_preference_id |
| 185 |
})->count, 2, 'Found the two transport types that we set earlier'); |
185 |
})->count, 2, 'Found the two transport types that we set earlier'); |
| 186 |
|
186 |
|
| 187 |
$schema->storage->txn_rollback; |
187 |
$schema->storage->txn_rollback; |
| 188 |
}; |
188 |
}; |
| 189 |
|
189 |
|
| 190 |
subtest 'Test Koha::Patron::Message::Preference->message_transport_types' => sub { |
190 |
subtest 'Test Koha::Patron::MessagePreference->message_transport_types' => sub { |
| 191 |
plan tests => 4; |
191 |
plan tests => 4; |
| 192 |
|
192 |
|
| 193 |
ok(Koha::Patron::Message::Preference->can('message_transport_types'), |
193 |
ok(Koha::Patron::MessagePreference->can('message_transport_types'), |
| 194 |
'Method message_transport_types available'); |
194 |
'Method message_transport_types available'); |
| 195 |
|
195 |
|
| 196 |
subtest 'get message_transport_types' => sub { |
196 |
subtest 'get message_transport_types' => sub { |
|
Lines 202-226
subtest 'Test Koha::Patron::Message::Preference->message_transport_types' => sub
Link Here
|
| 202 |
my ($preference, $mtt1, $mtt2) = build_a_test_complete_preference({ |
202 |
my ($preference, $mtt1, $mtt2) = build_a_test_complete_preference({ |
| 203 |
patron => $patron |
203 |
patron => $patron |
| 204 |
}); |
204 |
}); |
| 205 |
Koha::Patron::Message::Transport::Preferences->search({ |
205 |
Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 206 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
206 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 207 |
})->delete; |
207 |
})->delete; |
| 208 |
Koha::Patron::Message::Transport::Preference->new({ |
208 |
Koha::Patron::MessagePreference::Transport::Preference->new({ |
| 209 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
209 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 210 |
message_transport_type => $mtt1->message_transport_type, |
210 |
message_transport_type => $mtt1->message_transport_type, |
| 211 |
})->store; |
211 |
})->store; |
| 212 |
Koha::Patron::Message::Transport::Preference->new({ |
212 |
Koha::Patron::MessagePreference::Transport::Preference->new({ |
| 213 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
213 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 214 |
message_transport_type => $mtt2->message_transport_type, |
214 |
message_transport_type => $mtt2->message_transport_type, |
| 215 |
})->store; |
215 |
})->store; |
| 216 |
my $stored_transports = Koha::Patron::Message::Transport::Preferences->search({ |
216 |
my $stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 217 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
217 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 218 |
}); |
218 |
}); |
| 219 |
my $transport1 = Koha::Patron::Message::Transports->find({ |
219 |
my $transport1 = Koha::Patron::MessagePreference::Transports->find({ |
| 220 |
message_attribute_id => $preference->message_attribute_id, |
220 |
message_attribute_id => $preference->message_attribute_id, |
| 221 |
message_transport_type => $mtt1->message_transport_type, |
221 |
message_transport_type => $mtt1->message_transport_type, |
| 222 |
}); |
222 |
}); |
| 223 |
my $transport2 = Koha::Patron::Message::Transports->find({ |
223 |
my $transport2 = Koha::Patron::MessagePreference::Transports->find({ |
| 224 |
message_attribute_id => $preference->message_attribute_id, |
224 |
message_attribute_id => $preference->message_attribute_id, |
| 225 |
message_transport_type => $mtt2->message_transport_type, |
225 |
message_transport_type => $mtt2->message_transport_type, |
| 226 |
}); |
226 |
}); |
|
Lines 255-273
HERE
Link Here
|
| 255 |
my $appenders = Log::Log4perl->appenders; |
255 |
my $appenders = Log::Log4perl->appenders; |
| 256 |
my $appender = Log::Log4perl->appenders->{OPAC}; |
256 |
my $appender = Log::Log4perl->appenders->{OPAC}; |
| 257 |
|
257 |
|
| 258 |
my $pref = Koha::Patron::Message::Preferences->find( |
258 |
my $pref = Koha::Patron::MessagePreferences->find( |
| 259 |
$preference->borrower_message_preference_id |
259 |
$preference->borrower_message_preference_id |
| 260 |
); |
260 |
); |
| 261 |
my $transports = $pref->message_transport_types; |
261 |
my $transports = $pref->message_transport_types; |
| 262 |
is($appender, undef, 'Nothing in buffer yet'); |
262 |
is($appender, undef, 'Nothing in buffer yet'); |
| 263 |
|
263 |
|
| 264 |
my $mtt_new = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' }); |
264 |
my $mtt_new = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' }); |
| 265 |
Koha::Patron::Message::Transport::Preference->new({ |
265 |
Koha::Patron::MessagePreference::Transport::Preference->new({ |
| 266 |
borrower_message_preference_id => |
266 |
borrower_message_preference_id => |
| 267 |
$pref->borrower_message_preference_id, |
267 |
$pref->borrower_message_preference_id, |
| 268 |
message_transport_type => $mtt_new->message_transport_type, |
268 |
message_transport_type => $mtt_new->message_transport_type, |
| 269 |
})->store; |
269 |
})->store; |
| 270 |
$pref = Koha::Patron::Message::Preferences->find( |
270 |
$pref = Koha::Patron::MessagePreferences->find( |
| 271 |
$pref->borrower_message_preference_id |
271 |
$pref->borrower_message_preference_id |
| 272 |
); |
272 |
); |
| 273 |
$transports = $pref->message_transport_types; |
273 |
$transports = $pref->message_transport_types; |
|
Lines 294-305
HERE
Link Here
|
| 294 |
my $mtt1_str = $mtt1->message_transport_type; |
294 |
my $mtt1_str = $mtt1->message_transport_type; |
| 295 |
my $mtt2_str = $mtt2->message_transport_type; |
295 |
my $mtt2_str = $mtt2->message_transport_type; |
| 296 |
# 1/3, use message_transport_types(list) |
296 |
# 1/3, use message_transport_types(list) |
| 297 |
Koha::Patron::Message::Transport::Preferences->search({ |
297 |
Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 298 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
298 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 299 |
})->delete; |
299 |
})->delete; |
| 300 |
ok($preference->message_transport_types($mtt1_str, $mtt2_str)->store, |
300 |
ok($preference->message_transport_types($mtt1_str, $mtt2_str)->store, |
| 301 |
'1/3 Set returned true.'); |
301 |
'1/3 Set returned true.'); |
| 302 |
my $stored_transports = Koha::Patron::Message::Transport::Preferences->search({ |
302 |
my $stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 303 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
303 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 304 |
'-or' => [ |
304 |
'-or' => [ |
| 305 |
message_transport_type => $mtt1_str, |
305 |
message_transport_type => $mtt1_str, |
|
Lines 309-320
HERE
Link Here
|
| 309 |
is($stored_transports->count, 2, 'Two transports selected'); |
309 |
is($stored_transports->count, 2, 'Two transports selected'); |
| 310 |
|
310 |
|
| 311 |
# 2/3, use message_transport_types(ARRAYREF) |
311 |
# 2/3, use message_transport_types(ARRAYREF) |
| 312 |
Koha::Patron::Message::Transport::Preferences->search({ |
312 |
Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 313 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
313 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 314 |
})->delete; |
314 |
})->delete; |
| 315 |
ok($preference->message_transport_types([$mtt1_str, $mtt2_str])->store, |
315 |
ok($preference->message_transport_types([$mtt1_str, $mtt2_str])->store, |
| 316 |
'2/3 Set returned true.'); |
316 |
'2/3 Set returned true.'); |
| 317 |
$stored_transports = Koha::Patron::Message::Transport::Preferences->search({ |
317 |
$stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 318 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
318 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 319 |
'-or' => [ |
319 |
'-or' => [ |
| 320 |
message_transport_type => $mtt1_str, |
320 |
message_transport_type => $mtt1_str, |
|
Lines 324-336
HERE
Link Here
|
| 324 |
is($stored_transports->count, 2, 'Two transports selected'); |
324 |
is($stored_transports->count, 2, 'Two transports selected'); |
| 325 |
|
325 |
|
| 326 |
# 3/3, use set({ message_transport_types => ARRAYREF }) |
326 |
# 3/3, use set({ message_transport_types => ARRAYREF }) |
| 327 |
Koha::Patron::Message::Transport::Preferences->search({ |
327 |
Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 328 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
328 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 329 |
})->delete; |
329 |
})->delete; |
| 330 |
ok($preference->set({ |
330 |
ok($preference->set({ |
| 331 |
message_transport_types => [$mtt1_str, $mtt2_str]})->store, |
331 |
message_transport_types => [$mtt1_str, $mtt2_str]})->store, |
| 332 |
'3/3 Set returned true.'); |
332 |
'3/3 Set returned true.'); |
| 333 |
$stored_transports = Koha::Patron::Message::Transport::Preferences->search({ |
333 |
$stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 334 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
334 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 335 |
'-or' => [ |
335 |
'-or' => [ |
| 336 |
message_transport_type => $mtt1_str, |
336 |
message_transport_type => $mtt1_str, |
|
Lines 340-373
HERE
Link Here
|
| 340 |
is($stored_transports->count, 2, 'Two transports selected'); |
340 |
is($stored_transports->count, 2, 'Two transports selected'); |
| 341 |
|
341 |
|
| 342 |
# Test contact information validation |
342 |
# Test contact information validation |
| 343 |
eval { Koha::Patron::Message::Transport::Types->new({ |
343 |
eval { Koha::Patron::MessagePreference::Transport::Types->new({ |
| 344 |
message_transport_type => 'email' |
344 |
message_transport_type => 'email' |
| 345 |
})->store }; |
345 |
})->store }; |
| 346 |
eval { Koha::Patron::Message::Transport::Types->new({ |
346 |
eval { Koha::Patron::MessagePreference::Transport::Types->new({ |
| 347 |
message_transport_type => 'itiva' |
347 |
message_transport_type => 'itiva' |
| 348 |
})->store }; |
348 |
})->store }; |
| 349 |
eval { Koha::Patron::Message::Transport::Types->new({ |
349 |
eval { Koha::Patron::MessagePreference::Transport::Types->new({ |
| 350 |
message_transport_type => 'phone' |
350 |
message_transport_type => 'phone' |
| 351 |
})->store }; |
351 |
})->store }; |
| 352 |
eval { Koha::Patron::Message::Transport::Types->new({ |
352 |
eval { Koha::Patron::MessagePreference::Transport::Types->new({ |
| 353 |
message_transport_type => 'sms' |
353 |
message_transport_type => 'sms' |
| 354 |
})->store }; |
354 |
})->store }; |
| 355 |
Koha::Patron::Message::Transport->new({ |
355 |
Koha::Patron::MessagePreference::Transport->new({ |
| 356 |
message_attribute_id => $preference->message_attribute_id, |
356 |
message_attribute_id => $preference->message_attribute_id, |
| 357 |
message_transport_type => 'email', |
357 |
message_transport_type => 'email', |
| 358 |
is_digest => 1 |
358 |
is_digest => 1 |
| 359 |
})->store; |
359 |
})->store; |
| 360 |
Koha::Patron::Message::Transport->new({ |
360 |
Koha::Patron::MessagePreference::Transport->new({ |
| 361 |
message_attribute_id => $preference->message_attribute_id, |
361 |
message_attribute_id => $preference->message_attribute_id, |
| 362 |
message_transport_type => 'itiva', |
362 |
message_transport_type => 'itiva', |
| 363 |
is_digest => 1 |
363 |
is_digest => 1 |
| 364 |
})->store; |
364 |
})->store; |
| 365 |
Koha::Patron::Message::Transport->new({ |
365 |
Koha::Patron::MessagePreference::Transport->new({ |
| 366 |
message_attribute_id => $preference->message_attribute_id, |
366 |
message_attribute_id => $preference->message_attribute_id, |
| 367 |
message_transport_type => 'phone', |
367 |
message_transport_type => 'phone', |
| 368 |
is_digest => 1 |
368 |
is_digest => 1 |
| 369 |
})->store; |
369 |
})->store; |
| 370 |
Koha::Patron::Message::Transport->new({ |
370 |
Koha::Patron::MessagePreference::Transport->new({ |
| 371 |
message_attribute_id => $preference->message_attribute_id, |
371 |
message_attribute_id => $preference->message_attribute_id, |
| 372 |
message_transport_type => 'sms', |
372 |
message_transport_type => 'sms', |
| 373 |
is_digest => 1 |
373 |
is_digest => 1 |
|
Lines 377-385
HERE
Link Here
|
| 377 |
eval { |
377 |
eval { |
| 378 |
$preference->message_transport_types('email')->store; |
378 |
$preference->message_transport_types('email')->store; |
| 379 |
}; |
379 |
}; |
| 380 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::EmailAddressRequired', |
380 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::EmailAddressRequired', |
| 381 |
'Adding a message preference with invalid message_transport_type' |
381 |
'Adding a message preference with invalid message_transport_type' |
| 382 |
.' => Koha::Exceptions::Patron::Message::Preference::EmailAddressRequired'); |
382 |
.' => Koha::Exceptions::Patron::MessagePreference::EmailAddressRequired'); |
| 383 |
is ($@->message_name, $preference->message_name, 'The previous exception ' |
383 |
is ($@->message_name, $preference->message_name, 'The previous exception ' |
| 384 |
.' tells us it which message name it was.'); |
384 |
.' tells us it which message name it was.'); |
| 385 |
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception ' |
385 |
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception ' |
|
Lines 387-395
HERE
Link Here
|
| 387 |
eval { |
387 |
eval { |
| 388 |
$preference->message_transport_types('itiva')->store; |
388 |
$preference->message_transport_types('itiva')->store; |
| 389 |
}; |
389 |
}; |
| 390 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::TalkingTechItivaPhoneNotificationRequired', |
390 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::TalkingTechItivaPhoneNotificationRequired', |
| 391 |
'Adding a message preference with invalid message_transport_type' |
391 |
'Adding a message preference with invalid message_transport_type' |
| 392 |
.' => Koha::Exceptions::Patron::Message::Preference::TalkingTechItivaPhoneNotificationRequired'); |
392 |
.' => Koha::Exceptions::Patron::MessagePreference::TalkingTechItivaPhoneNotificationRequired'); |
| 393 |
is ($@->message_name, $preference->message_name, 'The previous exception ' |
393 |
is ($@->message_name, $preference->message_name, 'The previous exception ' |
| 394 |
.' tells us it which message name it was.'); |
394 |
.' tells us it which message name it was.'); |
| 395 |
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception ' |
395 |
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception ' |
|
Lines 397-405
HERE
Link Here
|
| 397 |
eval { |
397 |
eval { |
| 398 |
$preference->message_transport_types('phone')->store; |
398 |
$preference->message_transport_types('phone')->store; |
| 399 |
}; |
399 |
}; |
| 400 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::PhoneNumberRequired', |
400 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::PhoneNumberRequired', |
| 401 |
'Adding a message preference with invalid message_transport_type' |
401 |
'Adding a message preference with invalid message_transport_type' |
| 402 |
.' => Koha::Exceptions::Patron::Message::Preference::PhoneNumberRequired'); |
402 |
.' => Koha::Exceptions::Patron::MessagePreference::PhoneNumberRequired'); |
| 403 |
is ($@->message_name, $preference->message_name, 'The previous exception ' |
403 |
is ($@->message_name, $preference->message_name, 'The previous exception ' |
| 404 |
.' tells us it which message name it was.'); |
404 |
.' tells us it which message name it was.'); |
| 405 |
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception ' |
405 |
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception ' |
|
Lines 407-415
HERE
Link Here
|
| 407 |
eval { |
407 |
eval { |
| 408 |
$preference->message_transport_types('sms')->store; |
408 |
$preference->message_transport_types('sms')->store; |
| 409 |
}; |
409 |
}; |
| 410 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::SMSNumberRequired', |
410 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::SMSNumberRequired', |
| 411 |
'Adding a message preference with invalid message_transport_type' |
411 |
'Adding a message preference with invalid message_transport_type' |
| 412 |
.' => Koha::Exceptions::Patron::Message::Preference::SMSNumberRequired'); |
412 |
.' => Koha::Exceptions::Patron::MessagePreference::SMSNumberRequired'); |
| 413 |
is ($@->message_name, $preference->message_name, 'The previous exception ' |
413 |
is ($@->message_name, $preference->message_name, 'The previous exception ' |
| 414 |
.' tells us it which message name it was.'); |
414 |
.' tells us it which message name it was.'); |
| 415 |
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception ' |
415 |
is ($@->borrowernumber, $patron->borrowernumber, 'The previous exception ' |
|
Lines 425-440
HERE
Link Here
|
| 425 |
|
425 |
|
| 426 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
426 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
| 427 |
my $letter = build_a_test_letter(); |
427 |
my $letter = build_a_test_letter(); |
| 428 |
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' }); |
428 |
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' }); |
| 429 |
my $mtt = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' }); |
429 |
my $mtt = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' }); |
| 430 |
Koha::Patron::Message::Transport->new({ |
430 |
Koha::Patron::MessagePreference::Transport->new({ |
| 431 |
message_attribute_id => $attribute->message_attribute_id, |
431 |
message_attribute_id => $attribute->message_attribute_id, |
| 432 |
message_transport_type => $mtt->message_transport_type, |
432 |
message_transport_type => $mtt->message_transport_type, |
| 433 |
is_digest => 0, |
433 |
is_digest => 0, |
| 434 |
letter_module => $letter->module, |
434 |
letter_module => $letter->module, |
| 435 |
letter_code => $letter->code, |
435 |
letter_code => $letter->code, |
| 436 |
})->store; |
436 |
})->store; |
| 437 |
ok(my $preference = Koha::Patron::Message::Preference->new({ |
437 |
ok(my $preference = Koha::Patron::MessagePreference->new({ |
| 438 |
borrowernumber => $patron->borrowernumber, |
438 |
borrowernumber => $patron->borrowernumber, |
| 439 |
message_attribute_id => $attribute->message_attribute_id, |
439 |
message_attribute_id => $attribute->message_attribute_id, |
| 440 |
wants_digest => 0, |
440 |
wants_digest => 0, |
|
Lines 443-449
HERE
Link Here
|
| 443 |
})->store, 'Added a new messaging preference and transport types to patron.'); |
443 |
})->store, 'Added a new messaging preference and transport types to patron.'); |
| 444 |
ok($preference->message_transport_types->{$mtt->message_transport_type}, |
444 |
ok($preference->message_transport_types->{$mtt->message_transport_type}, |
| 445 |
'The transport type is stored in the object.'); |
445 |
'The transport type is stored in the object.'); |
| 446 |
my $stored_transports = Koha::Patron::Message::Transport::Preferences->search({ |
446 |
my $stored_transports = Koha::Patron::MessagePreference::Transport::Preferences->search({ |
| 447 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
447 |
borrower_message_preference_id => $preference->borrower_message_preference_id, |
| 448 |
}); |
448 |
}); |
| 449 |
is($stored_transports->next->message_transport_type, $mtt->message_transport_type, |
449 |
is($stored_transports->next->message_transport_type, $mtt->message_transport_type, |
|
Lines 453-470
HERE
Link Here
|
| 453 |
}; |
453 |
}; |
| 454 |
}; |
454 |
}; |
| 455 |
|
455 |
|
| 456 |
subtest 'Test Koha::Patron::Message::Preference->message_name' => sub { |
456 |
subtest 'Test Koha::Patron::MessagePreference->message_name' => sub { |
| 457 |
plan tests => 1; |
457 |
plan tests => 1; |
| 458 |
|
458 |
|
| 459 |
$schema->storage->txn_begin; |
459 |
$schema->storage->txn_begin; |
| 460 |
|
460 |
|
| 461 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
461 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
| 462 |
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' }); |
462 |
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' }); |
| 463 |
my ($preference, $mtt1, $mtt2) = build_a_test_complete_preference({ |
463 |
my ($preference, $mtt1, $mtt2) = build_a_test_complete_preference({ |
| 464 |
patron => $patron, |
464 |
patron => $patron, |
| 465 |
attr => $attribute, |
465 |
attr => $attribute, |
| 466 |
}); |
466 |
}); |
| 467 |
my $message_name_pref = Koha::Patron::Message::Preferences->search_with_message_name({ |
467 |
my $message_name_pref = Koha::Patron::MessagePreferences->search_with_message_name({ |
| 468 |
borrowernumber => $patron->{'borrowernumber'}, |
468 |
borrowernumber => $patron->{'borrowernumber'}, |
| 469 |
message_name => $attribute->message_name, |
469 |
message_name => $attribute->message_name, |
| 470 |
})->next; |
470 |
})->next; |
|
Lines 473-479
subtest 'Test Koha::Patron::Message::Preference->message_name' => sub {
Link Here
|
| 473 |
$schema->storage->txn_rollback; |
473 |
$schema->storage->txn_rollback; |
| 474 |
}; |
474 |
}; |
| 475 |
|
475 |
|
| 476 |
subtest 'Test Koha::Patron::Message::Preference->mtt_deliverable' => sub { |
476 |
subtest 'Test Koha::Patron::MessagePreference->mtt_deliverable' => sub { |
| 477 |
plan tests => 10; |
477 |
plan tests => 10; |
| 478 |
|
478 |
|
| 479 |
$schema->storage->txn_begin; |
479 |
$schema->storage->txn_begin; |
|
Lines 484-517
subtest 'Test Koha::Patron::Message::Preference->mtt_deliverable' => sub {
Link Here
|
| 484 |
}); |
484 |
}); |
| 485 |
|
485 |
|
| 486 |
# Test email and smsalertnumber validation |
486 |
# Test email and smsalertnumber validation |
| 487 |
eval { Koha::Patron::Message::Transport::Types->new({ |
487 |
eval { Koha::Patron::MessagePreference::Transport::Types->new({ |
| 488 |
message_transport_type => 'email' |
488 |
message_transport_type => 'email' |
| 489 |
})->store }; |
489 |
})->store }; |
| 490 |
eval { Koha::Patron::Message::Transport::Types->new({ |
490 |
eval { Koha::Patron::MessagePreference::Transport::Types->new({ |
| 491 |
message_transport_type => 'sms' |
491 |
message_transport_type => 'sms' |
| 492 |
})->store }; |
492 |
})->store }; |
| 493 |
eval { Koha::Patron::Message::Transport::Types->new({ |
493 |
eval { Koha::Patron::MessagePreference::Transport::Types->new({ |
| 494 |
message_transport_type => 'phone' |
494 |
message_transport_type => 'phone' |
| 495 |
})->store }; |
495 |
})->store }; |
| 496 |
eval { Koha::Patron::Message::Transport::Types->new({ |
496 |
eval { Koha::Patron::MessagePreference::Transport::Types->new({ |
| 497 |
message_transport_type => 'itiva' |
497 |
message_transport_type => 'itiva' |
| 498 |
})->store }; |
498 |
})->store }; |
| 499 |
Koha::Patron::Message::Transport->new({ |
499 |
Koha::Patron::MessagePreference::Transport->new({ |
| 500 |
message_attribute_id => $preference->message_attribute_id, |
500 |
message_attribute_id => $preference->message_attribute_id, |
| 501 |
message_transport_type => 'email', |
501 |
message_transport_type => 'email', |
| 502 |
is_digest => 1 |
502 |
is_digest => 1 |
| 503 |
})->store; |
503 |
})->store; |
| 504 |
Koha::Patron::Message::Transport->new({ |
504 |
Koha::Patron::MessagePreference::Transport->new({ |
| 505 |
message_attribute_id => $preference->message_attribute_id, |
505 |
message_attribute_id => $preference->message_attribute_id, |
| 506 |
message_transport_type => 'sms', |
506 |
message_transport_type => 'sms', |
| 507 |
is_digest => 1 |
507 |
is_digest => 1 |
| 508 |
})->store; |
508 |
})->store; |
| 509 |
Koha::Patron::Message::Transport->new({ |
509 |
Koha::Patron::MessagePreference::Transport->new({ |
| 510 |
message_attribute_id => $preference->message_attribute_id, |
510 |
message_attribute_id => $preference->message_attribute_id, |
| 511 |
message_transport_type => 'phone', |
511 |
message_transport_type => 'phone', |
| 512 |
is_digest => 1 |
512 |
is_digest => 1 |
| 513 |
})->store; |
513 |
})->store; |
| 514 |
Koha::Patron::Message::Transport->new({ |
514 |
Koha::Patron::MessagePreference::Transport->new({ |
| 515 |
message_attribute_id => $preference->message_attribute_id, |
515 |
message_attribute_id => $preference->message_attribute_id, |
| 516 |
message_transport_type => 'itiva', |
516 |
message_transport_type => 'itiva', |
| 517 |
is_digest => 1 |
517 |
is_digest => 1 |
|
Lines 557-563
subtest 'Test adding a new preference with invalid parameters' => sub {
Link Here
|
| 557 |
subtest 'Missing parameters' => sub { |
557 |
subtest 'Missing parameters' => sub { |
| 558 |
plan tests => 1; |
558 |
plan tests => 1; |
| 559 |
|
559 |
|
| 560 |
eval { Koha::Patron::Message::Preference->new->store }; |
560 |
eval { Koha::Patron::MessagePreference->new->store }; |
| 561 |
is(ref $@, 'Koha::Exceptions::MissingParameter', |
561 |
is(ref $@, 'Koha::Exceptions::MissingParameter', |
| 562 |
'Adding a message preference without parameters' |
562 |
'Adding a message preference without parameters' |
| 563 |
.' => Koha::Exceptions::MissingParameter'); |
563 |
.' => Koha::Exceptions::MissingParameter'); |
|
Lines 569-575
subtest 'Test adding a new preference with invalid parameters' => sub {
Link Here
|
| 569 |
$schema->storage->txn_begin; |
569 |
$schema->storage->txn_begin; |
| 570 |
|
570 |
|
| 571 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
571 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
| 572 |
eval { Koha::Patron::Message::Preference->new({ |
572 |
eval { Koha::Patron::MessagePreference->new({ |
| 573 |
borrowernumber => $patron->borrowernumber, |
573 |
borrowernumber => $patron->borrowernumber, |
| 574 |
categorycode => $patron->categorycode, |
574 |
categorycode => $patron->categorycode, |
| 575 |
})->store }; |
575 |
})->store }; |
|
Lines 585-598
subtest 'Test adding a new preference with invalid parameters' => sub {
Link Here
|
| 585 |
|
585 |
|
| 586 |
$schema->storage->txn_begin; |
586 |
$schema->storage->txn_begin; |
| 587 |
|
587 |
|
| 588 |
eval { Koha::Patron::Message::Preference->new({ |
588 |
eval { Koha::Patron::MessagePreference->new({ |
| 589 |
borrowernumber => -999, |
589 |
borrowernumber => -999, |
| 590 |
})->store }; |
590 |
})->store }; |
| 591 |
is(ref $@, 'Koha::Exceptions::Patron::NotFound', |
591 |
is(ref $@, 'Koha::Exceptions::Patron::NotFound', |
| 592 |
'Adding a message preference with invalid borrowernumber' |
592 |
'Adding a message preference with invalid borrowernumber' |
| 593 |
.' => Koha::Exceptions::Patron::NotFound'); |
593 |
.' => Koha::Exceptions::Patron::NotFound'); |
| 594 |
|
594 |
|
| 595 |
eval { Koha::Patron::Message::Preference->new({ |
595 |
eval { Koha::Patron::MessagePreference->new({ |
| 596 |
categorycode => 'nonexistent', |
596 |
categorycode => 'nonexistent', |
| 597 |
})->store }; |
597 |
})->store }; |
| 598 |
is(ref $@, 'Koha::Exceptions::Patron::Category::NotFound', |
598 |
is(ref $@, 'Koha::Exceptions::Patron::Category::NotFound', |
|
Lines 601-696
subtest 'Test adding a new preference with invalid parameters' => sub {
Link Here
|
| 601 |
|
601 |
|
| 602 |
my $attribute = build_a_test_attribute({ takes_days => 0 }); |
602 |
my $attribute = build_a_test_attribute({ takes_days => 0 }); |
| 603 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
603 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
| 604 |
eval { Koha::Patron::Message::Preference->new({ |
604 |
eval { Koha::Patron::MessagePreference->new({ |
| 605 |
borrowernumber => $patron->borrowernumber, |
605 |
borrowernumber => $patron->borrowernumber, |
| 606 |
message_attribute_id => $attribute->message_attribute_id, |
606 |
message_attribute_id => $attribute->message_attribute_id, |
| 607 |
days_in_advance => 10, |
607 |
days_in_advance => 10, |
| 608 |
})->store }; |
608 |
})->store }; |
| 609 |
is(ref $@, 'Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceNotAvailable', |
609 |
is(ref $@, 'Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceNotAvailable', |
| 610 |
'Adding a message preference with days in advance option when not' |
610 |
'Adding a message preference with days in advance option when not' |
| 611 |
.' available => Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceNotAvailable'); |
611 |
.' available => Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceNotAvailable'); |
| 612 |
|
612 |
|
| 613 |
$attribute->set({ takes_days => 1 })->store; |
613 |
$attribute->set({ takes_days => 1 })->store; |
| 614 |
eval { Koha::Patron::Message::Preference->new({ |
614 |
eval { Koha::Patron::MessagePreference->new({ |
| 615 |
borrowernumber => $patron->borrowernumber, |
615 |
borrowernumber => $patron->borrowernumber, |
| 616 |
message_attribute_id => $attribute->message_attribute_id, |
616 |
message_attribute_id => $attribute->message_attribute_id, |
| 617 |
days_in_advance => -1, |
617 |
days_in_advance => -1, |
| 618 |
})->store }; |
618 |
})->store }; |
| 619 |
is(ref $@, 'Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange', |
619 |
is(ref $@, 'Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange', |
| 620 |
'Adding a message preference with days in advance option is out of range' |
620 |
'Adding a message preference with days in advance option is out of range' |
| 621 |
.' => Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange'); |
621 |
.' => Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange'); |
| 622 |
is ($@->min, 0, 'The previous exception min value is 0.'); |
622 |
is ($@->min, 0, 'The previous exception min value is 0.'); |
| 623 |
|
623 |
|
| 624 |
eval { Koha::Patron::Message::Preference->new({ |
624 |
eval { Koha::Patron::MessagePreference->new({ |
| 625 |
borrowernumber => $patron->borrowernumber, |
625 |
borrowernumber => $patron->borrowernumber, |
| 626 |
message_attribute_id => $attribute->message_attribute_id, |
626 |
message_attribute_id => $attribute->message_attribute_id, |
| 627 |
days_in_advance => 31, |
627 |
days_in_advance => 31, |
| 628 |
})->store }; |
628 |
})->store }; |
| 629 |
is(ref $@, 'Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange', |
629 |
is(ref $@, 'Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange', |
| 630 |
'Adding a message preference with days in advance option is out of range' |
630 |
'Adding a message preference with days in advance option is out of range' |
| 631 |
.' => Koha::Exceptions::Patron::Message::Preference::DaysInAdvanceOutOfRange'); |
631 |
.' => Koha::Exceptions::Patron::MessagePreference::DaysInAdvanceOutOfRange'); |
| 632 |
is ($@->max, 30, 'The previous exception max value is 30.'); |
632 |
is ($@->max, 30, 'The previous exception max value is 30.'); |
| 633 |
|
633 |
|
| 634 |
eval { Koha::Patron::Message::Preference->new({ |
634 |
eval { Koha::Patron::MessagePreference->new({ |
| 635 |
borrowernumber => $patron->borrowernumber, |
635 |
borrowernumber => $patron->borrowernumber, |
| 636 |
message_transport_types => ['nonexistent'] |
636 |
message_transport_types => ['nonexistent'] |
| 637 |
})->store }; |
637 |
})->store }; |
| 638 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Transport::TypeNotFound', |
638 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::Transport::TypeNotFound', |
| 639 |
'Adding a message preference with invalid message_transport_type' |
639 |
'Adding a message preference with invalid message_transport_type' |
| 640 |
.' => Koha::Exceptions::Patron::Message::Transport::TypeNotFound'); |
640 |
.' => Koha::Exceptions::Patron::MessagePreference::Transport::TypeNotFound'); |
| 641 |
is ($@->transport_type, 'nonexistent', 'The previous exception ' |
641 |
is ($@->transport_type, 'nonexistent', 'The previous exception ' |
| 642 |
.'tells us it which transport type it was.'); |
642 |
.'tells us it which transport type it was.'); |
| 643 |
|
643 |
|
| 644 |
my $mtt_new = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' }); |
644 |
my $mtt_new = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' }); |
| 645 |
eval { |
645 |
eval { |
| 646 |
Koha::Patron::Message::Preference->new({ |
646 |
Koha::Patron::MessagePreference->new({ |
| 647 |
borrowernumber => $patron->borrowernumber, |
647 |
borrowernumber => $patron->borrowernumber, |
| 648 |
message_attribute_id => $attribute->message_attribute_id, |
648 |
message_attribute_id => $attribute->message_attribute_id, |
| 649 |
message_transport_types => [$mtt_new->message_transport_type], |
649 |
message_transport_types => [$mtt_new->message_transport_type], |
| 650 |
wants_digest => 1, |
650 |
wants_digest => 1, |
| 651 |
})->store }; |
651 |
})->store }; |
| 652 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::NoTransportType', |
652 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::NoTransportType', |
| 653 |
'Adding a message preference with invalid message_transport_type' |
653 |
'Adding a message preference with invalid message_transport_type' |
| 654 |
.' => Koha::Exceptions::Patron::Message::Preference::NoTransportType'); |
654 |
.' => Koha::Exceptions::Patron::MessagePreference::NoTransportType'); |
| 655 |
is ($@->message_name, $attribute->message_name, 'The previous exception ' |
655 |
is ($@->message_name, $attribute->message_name, 'The previous exception ' |
| 656 |
.'tells us which message it was.'); |
656 |
.'tells us which message it was.'); |
| 657 |
is ($@->transport_type, $mtt_new->message_transport_type, 'The previous exception ' |
657 |
is ($@->transport_type, $mtt_new->message_transport_type, 'The previous exception ' |
| 658 |
.'tells us which message transport type it was.'); |
658 |
.'tells us which message transport type it was.'); |
| 659 |
|
659 |
|
| 660 |
eval { |
660 |
eval { |
| 661 |
Koha::Patron::Message::Preference->new({ |
661 |
Koha::Patron::MessagePreference->new({ |
| 662 |
borrowernumber => $patron->borrowernumber, |
662 |
borrowernumber => $patron->borrowernumber, |
| 663 |
message_attribute_id => $attribute->message_attribute_id, |
663 |
message_attribute_id => $attribute->message_attribute_id, |
| 664 |
message_transport_types => [], |
664 |
message_transport_types => [], |
| 665 |
wants_digest => 1, |
665 |
wants_digest => 1, |
| 666 |
})->store }; |
666 |
})->store }; |
| 667 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::DigestNotAvailable', |
667 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::DigestNotAvailable', |
| 668 |
'Adding a message preference that has no digest setting' |
668 |
'Adding a message preference that has no digest setting' |
| 669 |
.' => Koha::Exceptions::Patron::Message::Preference::DigestNotAvailable'); |
669 |
.' => Koha::Exceptions::Patron::MessagePreference::DigestNotAvailable'); |
| 670 |
is ($@->message_name, $attribute->message_name, 'The previous exception tells us' |
670 |
is ($@->message_name, $attribute->message_name, 'The previous exception tells us' |
| 671 |
.' which message it was'); |
671 |
.' which message it was'); |
| 672 |
|
672 |
|
| 673 |
eval { |
673 |
eval { |
| 674 |
Koha::Patron::Message::Preference->new({ |
674 |
Koha::Patron::MessagePreference->new({ |
| 675 |
borrowernumber => $patron->borrowernumber, |
675 |
borrowernumber => $patron->borrowernumber, |
| 676 |
message_attribute_id => $attribute->message_attribute_id, |
676 |
message_attribute_id => $attribute->message_attribute_id, |
| 677 |
message_transport_types => [], |
677 |
message_transport_types => [], |
| 678 |
wants_digest => 0, |
678 |
wants_digest => 0, |
| 679 |
})->store }; |
679 |
})->store }; |
| 680 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::DigestRequired', |
680 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::DigestRequired', |
| 681 |
'Adding a message preference, that requires digest, with no digest' |
681 |
'Adding a message preference, that requires digest, with no digest' |
| 682 |
.' => Koha::Exceptions::Patron::Message::Preference::DigestRequired'); |
682 |
.' => Koha::Exceptions::Patron::MessagePreference::DigestRequired'); |
| 683 |
is ($@->message_name, $attribute->message_name, 'The previous exception tells us' |
683 |
is ($@->message_name, $attribute->message_name, 'The previous exception tells us' |
| 684 |
.' which message it was'); |
684 |
.' which message it was'); |
| 685 |
eval { |
685 |
eval { |
| 686 |
Koha::Patron::Message::Preference->new({ |
686 |
Koha::Patron::MessagePreference->new({ |
| 687 |
borrowernumber => $patron->borrowernumber, |
687 |
borrowernumber => $patron->borrowernumber, |
| 688 |
message_attribute_id => -1, |
688 |
message_attribute_id => -1, |
| 689 |
message_transport_types => [], |
689 |
message_transport_types => [], |
| 690 |
})->store }; |
690 |
})->store }; |
| 691 |
is (ref $@, 'Koha::Exceptions::Patron::Message::Preference::AttributeNotFound', |
691 |
is (ref $@, 'Koha::Exceptions::Patron::MessagePreference::AttributeNotFound', |
| 692 |
'Adding a message preference with invalid message_transport_type' |
692 |
'Adding a message preference with invalid message_transport_type' |
| 693 |
.' => KKoha::Exceptions::Patron::Message::Preference::AttributeNotFound'); |
693 |
.' => KKoha::Exceptions::Patron::MessagePreference::AttributeNotFound'); |
| 694 |
is ($@->message_attribute_id, -1, 'The previous exception tells' |
694 |
is ($@->message_attribute_id, -1, 'The previous exception tells' |
| 695 |
.' us which message attribute id it was.'); |
695 |
.' us which message attribute id it was.'); |
| 696 |
|
696 |
|
|
Lines 702-711
subtest 'Test adding a new preference with invalid parameters' => sub {
Link Here
|
| 702 |
|
702 |
|
| 703 |
$schema->storage->txn_begin; |
703 |
$schema->storage->txn_begin; |
| 704 |
|
704 |
|
| 705 |
my $attribute = $builder->build_object({ class => 'Koha::Patron::Message::Attributes' }); |
705 |
my $attribute = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Attributes' }); |
| 706 |
my $letter = build_a_test_letter(); |
706 |
my $letter = build_a_test_letter(); |
| 707 |
my $mtt = $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' }); |
707 |
my $mtt = $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' }); |
| 708 |
Koha::Patron::Message::Transport->new({ |
708 |
Koha::Patron::MessagePreference::Transport->new({ |
| 709 |
message_attribute_id => $attribute->message_attribute_id, |
709 |
message_attribute_id => $attribute->message_attribute_id, |
| 710 |
message_transport_type => $mtt->message_transport_type, |
710 |
message_transport_type => $mtt->message_transport_type, |
| 711 |
is_digest => 0, |
711 |
is_digest => 0, |
|
Lines 713-719
subtest 'Test adding a new preference with invalid parameters' => sub {
Link Here
|
| 713 |
letter_code => $letter->code, |
713 |
letter_code => $letter->code, |
| 714 |
})->store; |
714 |
})->store; |
| 715 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
715 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
| 716 |
my $preference = Koha::Patron::Message::Preference->new({ |
716 |
my $preference = Koha::Patron::MessagePreference->new({ |
| 717 |
borrowernumber => $patron->borrowernumber, |
717 |
borrowernumber => $patron->borrowernumber, |
| 718 |
message_attribute_id => $attribute->message_attribute_id, |
718 |
message_attribute_id => $attribute->message_attribute_id, |
| 719 |
wants_digest => 0, |
719 |
wants_digest => 0, |
|
Lines 721-727
subtest 'Test adding a new preference with invalid parameters' => sub {
Link Here
|
| 721 |
})->store; |
721 |
})->store; |
| 722 |
ok($preference->borrower_message_preference_id, |
722 |
ok($preference->borrower_message_preference_id, |
| 723 |
'Added a new messaging preference for patron.'); |
723 |
'Added a new messaging preference for patron.'); |
| 724 |
eval { Koha::Patron::Message::Preference->new({ |
724 |
eval { Koha::Patron::MessagePreference->new({ |
| 725 |
borrowernumber => $patron->borrowernumber, |
725 |
borrowernumber => $patron->borrowernumber, |
| 726 |
message_attribute_id => $attribute->message_attribute_id, |
726 |
message_attribute_id => $attribute->message_attribute_id, |
| 727 |
wants_digest => 0, |
727 |
wants_digest => 0, |
|
Lines 746-752
sub build_a_test_attribute {
Link Here
|
| 746 |
value => $params, |
746 |
value => $params, |
| 747 |
}); |
747 |
}); |
| 748 |
|
748 |
|
| 749 |
return Koha::Patron::Message::Attributes->find( |
749 |
return Koha::Patron::MessagePreference::Attributes->find( |
| 750 |
$attribute->{message_attribute_id} |
750 |
$attribute->{message_attribute_id} |
| 751 |
); |
751 |
); |
| 752 |
} |
752 |
} |
|
Lines 782-791
sub build_a_test_category_preference {
Link Here
|
| 782 |
: build_a_test_attribute($params->{days_in_advance}); |
782 |
: build_a_test_attribute($params->{days_in_advance}); |
| 783 |
|
783 |
|
| 784 |
my $letter = $params->{letter} ? $params->{letter} : build_a_test_letter(); |
784 |
my $letter = $params->{letter} ? $params->{letter} : build_a_test_letter(); |
| 785 |
my $mtt1 = $params->{mtt1} ? $params->{mtt1} : $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' }); |
785 |
my $mtt1 = $params->{mtt1} ? $params->{mtt1} : $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' }); |
| 786 |
my $mtt2 = $params->{mtt2} ? $params->{mtt2} : $builder->build_object({ class => 'Koha::Patron::Message::Transport::Types' }); |
786 |
my $mtt2 = $params->{mtt2} ? $params->{mtt2} : $builder->build_object({ class => 'Koha::Patron::MessagePreference::Transport::Types' }); |
| 787 |
|
787 |
|
| 788 |
Koha::Patron::Message::Transport->new({ |
788 |
Koha::Patron::MessagePreference::Transport->new({ |
| 789 |
message_attribute_id => $attr->message_attribute_id, |
789 |
message_attribute_id => $attr->message_attribute_id, |
| 790 |
message_transport_type => $mtt1->message_transport_type, |
790 |
message_transport_type => $mtt1->message_transport_type, |
| 791 |
is_digest => $params->{digest} ? 1 : 0, |
791 |
is_digest => $params->{digest} ? 1 : 0, |
|
Lines 793-799
sub build_a_test_category_preference {
Link Here
|
| 793 |
letter_code => $letter->code, |
793 |
letter_code => $letter->code, |
| 794 |
})->store; |
794 |
})->store; |
| 795 |
|
795 |
|
| 796 |
Koha::Patron::Message::Transport->new({ |
796 |
Koha::Patron::MessagePreference::Transport->new({ |
| 797 |
message_attribute_id => $attr->message_attribute_id, |
797 |
message_attribute_id => $attr->message_attribute_id, |
| 798 |
message_transport_type => $mtt2->message_transport_type, |
798 |
message_transport_type => $mtt2->message_transport_type, |
| 799 |
is_digest => $params->{digest} ? 1 : 0, |
799 |
is_digest => $params->{digest} ? 1 : 0, |
|
Lines 801-807
sub build_a_test_category_preference {
Link Here
|
| 801 |
letter_code => $letter->code, |
801 |
letter_code => $letter->code, |
| 802 |
})->store; |
802 |
})->store; |
| 803 |
|
803 |
|
| 804 |
my $default = Koha::Patron::Message::Preference->new({ |
804 |
my $default = Koha::Patron::MessagePreference->new({ |
| 805 |
categorycode => $patron->categorycode, |
805 |
categorycode => $patron->categorycode, |
| 806 |
message_attribute_id => $attr->message_attribute_id, |
806 |
message_attribute_id => $attr->message_attribute_id, |
| 807 |
wants_digest => $params->{digest} ? 1 : 0, |
807 |
wants_digest => $params->{digest} ? 1 : 0, |
|
Lines 809-819
sub build_a_test_category_preference {
Link Here
|
| 809 |
? $params->{days_in_advance} : undef, |
809 |
? $params->{days_in_advance} : undef, |
| 810 |
})->store; |
810 |
})->store; |
| 811 |
|
811 |
|
| 812 |
Koha::Patron::Message::Transport::Preference->new({ |
812 |
Koha::Patron::MessagePreference::Transport::Preference->new({ |
| 813 |
borrower_message_preference_id => $default->borrower_message_preference_id, |
813 |
borrower_message_preference_id => $default->borrower_message_preference_id, |
| 814 |
message_transport_type => $mtt1->message_transport_type, |
814 |
message_transport_type => $mtt1->message_transport_type, |
| 815 |
})->store; |
815 |
})->store; |
| 816 |
Koha::Patron::Message::Transport::Preference->new({ |
816 |
Koha::Patron::MessagePreference::Transport::Preference->new({ |
| 817 |
borrower_message_preference_id => $default->borrower_message_preference_id, |
817 |
borrower_message_preference_id => $default->borrower_message_preference_id, |
| 818 |
message_transport_type => $mtt2->message_transport_type, |
818 |
message_transport_type => $mtt2->message_transport_type, |
| 819 |
})->store; |
819 |
})->store; |
|
Lines 827-833
sub build_a_test_complete_preference {
Link Here
|
| 827 |
my ($default, $mtt1, $mtt2) = build_a_test_category_preference($params); |
827 |
my ($default, $mtt1, $mtt2) = build_a_test_category_preference($params); |
| 828 |
my $patron = $params->{patron}; |
828 |
my $patron = $params->{patron}; |
| 829 |
$patron->set_default_messaging_preferences; |
829 |
$patron->set_default_messaging_preferences; |
| 830 |
return (Koha::Patron::Message::Preferences->search({ |
830 |
return (Koha::Patron::MessagePreferences->search({ |
| 831 |
borrowernumber => $patron->borrowernumber |
831 |
borrowernumber => $patron->borrowernumber |
| 832 |
})->next, $mtt1, $mtt2); |
832 |
})->next, $mtt1, $mtt2); |
| 833 |
} |
833 |
} |
| 834 |
- |
|
|