Lines 19-26
Link Here
|
19 |
|
19 |
|
20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
21 |
|
21 |
|
22 |
use Test::More tests => 5; |
22 |
use Test::More tests => 6; |
23 |
use t::lib::TestBuilder; |
23 |
use t::lib::TestBuilder; |
|
|
24 |
use t::lib::Mocks; |
24 |
|
25 |
|
25 |
use Koha::Database; |
26 |
use Koha::Database; |
26 |
|
27 |
|
Lines 145-147
subtest 'add_update() tests' => sub {
Link Here
|
145 |
|
146 |
|
146 |
$schema->storage->txn_rollback; |
147 |
$schema->storage->txn_rollback; |
147 |
}; |
148 |
}; |
148 |
- |
149 |
|
|
|
150 |
subtest 'store() tests' => sub { |
151 |
plan tests => 2; |
152 |
|
153 |
subtest 'acknowledgement notice trigger' => sub { |
154 |
plan tests => 4; |
155 |
|
156 |
$schema->storage->txn_begin; |
157 |
|
158 |
my $patron = $builder->build_object( { class => "Koha::Patrons" } ); |
159 |
my $biblio = $builder->build_sample_biblio(); |
160 |
|
161 |
my $new_ticket = Koha::Ticket->new( |
162 |
{ |
163 |
reporter_id => $patron->id, |
164 |
title => "Testing ticket", |
165 |
body => "Testing ticket message", |
166 |
biblio_id => $biblio->id |
167 |
} |
168 |
)->store(); |
169 |
|
170 |
is( ref($new_ticket), 'Koha::Ticket', |
171 |
'Koha::Ticket->store() returned the Koha::Ticket object' ); |
172 |
my $notices = |
173 |
Koha::Notice::Messages->search( { borrowernumber => $patron->id } ); |
174 |
is( $notices->count, 1, |
175 |
'One acknowledgement notice queued for the ticket reporter' ); |
176 |
my $THE_notice = $notices->next; |
177 |
isnt( $THE_notice->status, 'pending', |
178 |
'Acknowledgement notice is sent immediately' ); |
179 |
|
180 |
$new_ticket->set( { title => "Changed title" } )->store(); |
181 |
$notices = |
182 |
Koha::Notice::Messages->search( { borrowernumber => $patron->id } ); |
183 |
is( $notices->count, 1, |
184 |
'Further acknowledgement notices are not queud on subsequent stores' |
185 |
); |
186 |
|
187 |
$schema->storage->txn_rollback; |
188 |
}; |
189 |
|
190 |
subtest 'cataloger notice trigger' => sub { |
191 |
plan tests => 4; |
192 |
|
193 |
$schema->storage->txn_begin; |
194 |
|
195 |
my $catemail = 'catalogers@testmail.com'; |
196 |
t::lib::Mocks::mock_preference( 'CatalogerEmails', $catemail ); |
197 |
|
198 |
my $patron = $builder->build_object( { class => "Koha::Patrons" } ); |
199 |
my $biblio = $builder->build_sample_biblio(); |
200 |
|
201 |
my $new_ticket = Koha::Ticket->new( |
202 |
{ |
203 |
reporter_id => $patron->id, |
204 |
title => "Testing ticket", |
205 |
body => "Testing ticket message", |
206 |
biblio_id => $biblio->id |
207 |
} |
208 |
)->store(); |
209 |
|
210 |
is( ref($new_ticket), 'Koha::Ticket', |
211 |
'Koha::Ticket->store() returned the Koha::Ticket object' ); |
212 |
my $notices = |
213 |
Koha::Notice::Messages->search( { to_address => $catemail } ); |
214 |
is( $notices->count, 1, |
215 |
'One notification notice queued for the catalogers when ticket reported' ); |
216 |
my $THE_notice = $notices->next; |
217 |
isnt( $THE_notice->status, 'pending', |
218 |
'Notification notice is sent immediately' ); |
219 |
|
220 |
$new_ticket->set( { title => "Changed title" } )->store(); |
221 |
$notices = |
222 |
Koha::Notice::Messages->search( { to_address => $catemail } ); |
223 |
is( $notices->count, 1, |
224 |
'Further notification notices are not queud on subsequent stores' |
225 |
); |
226 |
|
227 |
$schema->storage->txn_rollback; |
228 |
}; |
229 |
}; |