|
Lines 17-23
Link Here
|
| 17 |
|
17 |
|
| 18 |
use Modern::Perl; |
18 |
use Modern::Perl; |
| 19 |
|
19 |
|
| 20 |
use Test::More tests => 47; |
20 |
use Test::More tests => 50; |
| 21 |
use Test::MockModule; |
21 |
use Test::MockModule; |
| 22 |
use Test::Exception; |
22 |
use Test::Exception; |
| 23 |
|
23 |
|
|
Lines 213-218
my $borrower1 = $builder->build({
Link Here
|
| 213 |
categorycode=>'STAFFER', |
213 |
categorycode=>'STAFFER', |
| 214 |
branchcode => $library3->{branchcode}, |
214 |
branchcode => $library3->{branchcode}, |
| 215 |
dateexpiry => '2015-01-01', |
215 |
dateexpiry => '2015-01-01', |
|
|
216 |
flags => undef, |
| 216 |
}, |
217 |
}, |
| 217 |
}); |
218 |
}); |
| 218 |
my $bor1inlist = $borrower1->{borrowernumber}; |
219 |
my $bor1inlist = $borrower1->{borrowernumber}; |
|
Lines 222-227
my $borrower2 = $builder->build({
Link Here
|
| 222 |
categorycode=>'STAFFER', |
223 |
categorycode=>'STAFFER', |
| 223 |
branchcode => $library3->{branchcode}, |
224 |
branchcode => $library3->{branchcode}, |
| 224 |
dateexpiry => '2015-01-01', |
225 |
dateexpiry => '2015-01-01', |
|
|
226 |
flags => undef, |
| 225 |
}, |
227 |
}, |
| 226 |
}); |
228 |
}); |
| 227 |
|
229 |
|
|
Lines 231-236
my $guarantee = $builder->build({
Link Here
|
| 231 |
categorycode=>'KIDclamp', |
233 |
categorycode=>'KIDclamp', |
| 232 |
branchcode => $library3->{branchcode}, |
234 |
branchcode => $library3->{branchcode}, |
| 233 |
dateexpiry => '2015-01-01', |
235 |
dateexpiry => '2015-01-01', |
|
|
236 |
flags => undef, |
| 234 |
}, |
237 |
}, |
| 235 |
}); |
238 |
}); |
| 236 |
|
239 |
|
|
Lines 306-327
is( scalar(@$patstodel),2,'Borrowers without issues deleted by last issue date')
Link Here
|
| 306 |
|
309 |
|
| 307 |
# Test GetBorrowersToExpunge and TrackLastPatronActivity |
310 |
# Test GetBorrowersToExpunge and TrackLastPatronActivity |
| 308 |
$dbh->do(q|UPDATE borrowers SET lastseen=NULL|); |
311 |
$dbh->do(q|UPDATE borrowers SET lastseen=NULL|); |
| 309 |
$builder->build({ source => 'Borrower', value => { lastseen => '2016-01-01 01:01:01', categorycode => 'CIVILIAN' } } ); |
312 |
$builder->build({ |
| 310 |
$builder->build({ source => 'Borrower', value => { lastseen => '2016-02-02 02:02:02', categorycode => 'CIVILIAN' } } ); |
313 |
source => 'Borrower', |
| 311 |
$builder->build({ source => 'Borrower', value => { lastseen => '2016-03-03 03:03:03', categorycode => 'CIVILIAN' } } ); |
314 |
value => { |
|
|
315 |
lastseen => '2016-01-01 01:01:01', |
| 316 |
categorycode => 'CIVILIAN', |
| 317 |
flags => undef, |
| 318 |
} |
| 319 |
}); |
| 320 |
$builder->build({ |
| 321 |
source => 'Borrower', |
| 322 |
value => { |
| 323 |
lastseen => '2016-02-02 02:02:02', |
| 324 |
categorycode => 'CIVILIAN', |
| 325 |
flags => undef, |
| 326 |
} |
| 327 |
}); |
| 328 |
$builder->build({ |
| 329 |
source => 'Borrower', |
| 330 |
value => { |
| 331 |
lastseen => '2016-03-03 03:03:03', |
| 332 |
categorycode => 'CIVILIAN', |
| 333 |
flags => undef, |
| 334 |
} |
| 335 |
}); |
| 312 |
$patstodel = GetBorrowersToExpunge( { last_seen => '1999-12-12' }); |
336 |
$patstodel = GetBorrowersToExpunge( { last_seen => '1999-12-12' }); |
| 313 |
is( scalar @$patstodel, 0, 'TrackLastPatronActivity - 0 patrons must be deleted' ); |
337 |
is( scalar @$patstodel, 0, 'TrackLastPatronActivity - 0 patrons must be deleted' ); |
| 314 |
$patstodel = GetBorrowersToExpunge( { last_seen => '2016-02-15' }); |
338 |
$patstodel = GetBorrowersToExpunge( { last_seen => '2016-02-15' }); |
| 315 |
is( scalar @$patstodel, 2, 'TrackLastPatronActivity - 2 patrons must be deleted' ); |
339 |
is( scalar @$patstodel, 2, 'TrackLastPatronActivity - 2 patrons must be deleted' ); |
| 316 |
$patstodel = GetBorrowersToExpunge( { last_seen => '2016-04-04' }); |
340 |
$patstodel = GetBorrowersToExpunge( { last_seen => '2016-04-04' }); |
| 317 |
is( scalar @$patstodel, 3, 'TrackLastPatronActivity - 3 patrons must be deleted' ); |
341 |
is( scalar @$patstodel, 3, 'TrackLastPatronActivity - 3 patrons must be deleted' ); |
| 318 |
my $patron2 = $builder->build({ source => 'Borrower', value => { lastseen => undef } }); |
342 |
my $patron2 = $builder->build({ |
|
|
343 |
source => 'Borrower', |
| 344 |
value => { |
| 345 |
lastseen => undef, |
| 346 |
flags => undef, |
| 347 |
} |
| 348 |
}); |
| 319 |
t::lib::Mocks::mock_preference( 'TrackLastPatronActivity', '0' ); |
349 |
t::lib::Mocks::mock_preference( 'TrackLastPatronActivity', '0' ); |
| 320 |
Koha::Patrons->find( $patron2->{borrowernumber} )->track_login; |
350 |
Koha::Patrons->find( $patron2->{borrowernumber} )->track_login; |
| 321 |
is( Koha::Patrons->find( $patron2->{borrowernumber} )->lastseen, undef, 'Lastseen should not be changed' ); |
351 |
is( Koha::Patrons->find( $patron2->{borrowernumber} )->lastseen, undef, 'Lastseen should not be changed' ); |
| 322 |
Koha::Patrons->find( $patron2->{borrowernumber} )->track_login({ force => 1 }); |
352 |
Koha::Patrons->find( $patron2->{borrowernumber} )->track_login({ force => 1 }); |
| 323 |
isnt( Koha::Patrons->find( $patron2->{borrowernumber} )->lastseen, undef, 'Lastseen should be changed now' ); |
353 |
isnt( Koha::Patrons->find( $patron2->{borrowernumber} )->lastseen, undef, 'Lastseen should be changed now' ); |
| 324 |
|
354 |
|
|
|
355 |
# Test GetBorrowersToExpunge and regular patron with permission |
| 356 |
$builder->build({ |
| 357 |
source => 'Category', |
| 358 |
value => { |
| 359 |
categorycode => 'SMALLSTAFF', |
| 360 |
description => 'Small staff', |
| 361 |
category_type => 'A', |
| 362 |
}, |
| 363 |
}); |
| 364 |
$borrowernumber = Koha::Patron->new({ |
| 365 |
categorycode => 'SMALLSTAFF', |
| 366 |
branchcode => $library2->{branchcode}, |
| 367 |
flags => undef, |
| 368 |
})->store->borrowernumber; |
| 369 |
$patron = Koha::Patrons->find( $borrowernumber ); |
| 370 |
$patstodel = GetBorrowersToExpunge( {category_code => 'SMALLSTAFF' } ); |
| 371 |
is( scalar @$patstodel, 1, 'Regular patron with flags=undef can be deleted' ); |
| 372 |
$patron->set({ flags => 0 })->store; |
| 373 |
$patstodel = GetBorrowersToExpunge( {category_code => 'SMALLSTAFF' } ); |
| 374 |
is( scalar @$patstodel, 1, 'Regular patron with flags=0 can be deleted' ); |
| 375 |
$patron->set({ flags => 4 })->store; |
| 376 |
$patstodel = GetBorrowersToExpunge( {category_code => 'SMALLSTAFF' } ); |
| 377 |
is( scalar @$patstodel, 0, 'Regular patron with flags>0 can not be deleted' ); |
| 378 |
|
| 325 |
# Regression tests for BZ13502 |
379 |
# Regression tests for BZ13502 |
| 326 |
## Remove all entries with userid='' (should be only 1 max) |
380 |
## Remove all entries with userid='' (should be only 1 max) |
| 327 |
$dbh->do(q|DELETE FROM borrowers WHERE userid = ''|); |
381 |
$dbh->do(q|DELETE FROM borrowers WHERE userid = ''|); |
| 328 |
- |
|
|