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

(-)a/t/db_dependent/Koha/Patrons.t (-1 / +22 lines)
Lines 19-25 Link Here
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
21
22
use Test::More tests => 15;
22
use Test::More tests => 16;
23
use Test::Warn;
23
use Test::Warn;
24
use DateTime;
24
use DateTime;
25
25
Lines 471-476 subtest 'get_overdues' => sub { Link Here
471
    $patron->delete;
471
    $patron->delete;
472
};
472
};
473
473
474
subtest 'get_age' => sub {
475
    plan tests => 6;
476
    my $patron = $builder->build( { source => 'Borrower' } );
477
    $patron = Koha::Patrons->find( $patron->{borrowernumber} );
478
    my $today = dt_from_string;
479
    $patron->dateofbirth( $today->clone->add( years => -12, months => -6, days => -1 ) );
480
    is( $patron->get_age, 12, 'Patron should be 12' );
481
    $patron->dateofbirth( $today->clone->add( years => -18, months => 0, days => 1 ) );
482
    is( $patron->get_age, 17, 'Patron should be 17, happy birthday tomorrow!' );
483
    $patron->dateofbirth( $today->clone->add( years => -18, months => 0, days => 0 ) );
484
    is( $patron->get_age, 18, 'Patron should be 18' );
485
    $patron->dateofbirth( $today->clone->add( years => -18, months => -12, days => -31 ) );
486
    is( $patron->get_age, 19, 'Patron should be 19' );
487
    $patron->dateofbirth( $today->clone->add( years => -18, months => -12, days => -30 ) );
488
    is( $patron->get_age, 19, 'Patron should be 19 again' );
489
    $patron->dateofbirth( $today->clone->add( years => 0,   months => -1, days => -1 ) );
490
    is( $patron->get_age, 0, 'Patron is a newborn child' );
491
492
    $patron->delete;
493
};
494
474
$retrieved_patron_1->delete;
495
$retrieved_patron_1->delete;
475
is( Koha::Patrons->search->count, $nb_of_patrons + 1, 'Delete should have deleted the patron' );
496
is( Koha::Patrons->search->count, $nb_of_patrons + 1, 'Delete should have deleted the patron' );
476
497
(-)a/t/db_dependent/Members.t (-82 / +1 lines)
Lines 17-23 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 79;
20
use Test::More tests => 66;
21
use Test::MockModule;
21
use Test::MockModule;
22
use Data::Dumper;
22
use Data::Dumper;
23
use C4::Context;
23
use C4::Context;
Lines 90-97 my %data = ( Link Here
90
    userid => 'tomasito'
90
    userid => 'tomasito'
91
);
91
);
92
92
93
testAgeAccessors(\%data); #Age accessor tests don't touch the db so it is safe to run them with just the object.
94
95
my $addmem=AddMember(%data);
93
my $addmem=AddMember(%data);
96
ok($addmem, "AddMember()");
94
ok($addmem, "AddMember()");
97
95
Lines 497-580 $borrower = GetMember(borrowernumber => $borrowernumber); Link Here
497
my $hashed_up =  Koha::AuthUtils::hash_password("Nexus-6", $borrower->{password});
495
my $hashed_up =  Koha::AuthUtils::hash_password("Nexus-6", $borrower->{password});
498
is( $borrower->{password} eq $hashed_up, 1, 'Check password hash equals hash of submitted password' );
496
is( $borrower->{password} eq $hashed_up, 1, 'Check password hash equals hash of submitted password' );
499
497
500
501
502
### ------------------------------------- ###
503
### Testing GetAge() / SetAge() functions ###
504
### ------------------------------------- ###
505
#USES the package $member-variable to mock a koha.borrowers-object
506
sub testAgeAccessors {
507
    my ($member) = @_;
508
    my $original_dateofbirth = $member->{dateofbirth};
509
510
    ##Testing GetAge()
511
    my $age=GetAge("1992-08-14", "2011-01-19");
512
    is ($age, "18", "Age correct");
513
514
    $age=GetAge("2011-01-19", "1992-01-19");
515
    is ($age, "-19", "Birthday In the Future");
516
517
    ##Testing SetAge() for now()
518
    my $dt_now = DateTime->now();
519
    $age = DateTime::Duration->new(years => 12, months => 6, days => 1);
520
    C4::Members::SetAge( $member, $age );
521
    $age = C4::Members::GetAge( $member->{dateofbirth} );
522
    is ($age, '12', "SetAge 12 years");
523
524
    $age = DateTime::Duration->new(years => 18, months => 12, days => 31);
525
    C4::Members::SetAge( $member, $age );
526
    $age = C4::Members::GetAge( $member->{dateofbirth} );
527
    is ($age, '19', "SetAge 18+1 years"); #This is a special case, where months=>12 and days=>31 constitute one full year, hence we get age 19 instead of 18.
528
529
    $age = DateTime::Duration->new(years => 18, months => 12, days => 30);
530
    C4::Members::SetAge( $member, $age );
531
    $age = C4::Members::GetAge( $member->{dateofbirth} );
532
    is ($age, '19', "SetAge 18 years");
533
534
    $age = DateTime::Duration->new(years => 0, months => 1, days => 1);
535
    C4::Members::SetAge( $member, $age );
536
    $age = C4::Members::GetAge( $member->{dateofbirth} );
537
    is ($age, '0', "SetAge 0 years");
538
539
    $age = '0018-12-31';
540
    C4::Members::SetAge( $member, $age );
541
    $age = C4::Members::GetAge( $member->{dateofbirth} );
542
    is ($age, '19', "SetAge ISO_Date 18+1 years"); #This is a special case, where months=>12 and days=>31 constitute one full year, hence we get age 19 instead of 18.
543
544
    $age = '0018-12-30';
545
    C4::Members::SetAge( $member, $age );
546
    $age = C4::Members::GetAge( $member->{dateofbirth} );
547
    is ($age, '19', "SetAge ISO_Date 18 years");
548
549
    $age = '18-1-1';
550
    eval { C4::Members::SetAge( $member, $age ); };
551
    is ((length $@ > 1), '1', "SetAge ISO_Date $age years FAILS");
552
553
    $age = '0018-01-01';
554
    eval { C4::Members::SetAge( $member, $age ); };
555
    is ((length $@ == 0), '1', "SetAge ISO_Date $age years succeeds");
556
557
    ##Testing SetAge() for relative_date
558
    my $relative_date = DateTime->new(year => 3010, month => 3, day => 15);
559
560
    $age = DateTime::Duration->new(years => 10, months => 3);
561
    C4::Members::SetAge( $member, $age, $relative_date );
562
    $age = C4::Members::GetAge( $member->{dateofbirth}, $relative_date->ymd() );
563
    is ($age, '10', "SetAge, 10 years and 3 months old person was born on ".$member->{dateofbirth}." if todays is ".$relative_date->ymd());
564
565
    $age = DateTime::Duration->new(years => 112, months => 1, days => 1);
566
    C4::Members::SetAge( $member, $age, $relative_date );
567
    $age = C4::Members::GetAge( $member->{dateofbirth}, $relative_date->ymd() );
568
    is ($age, '112', "SetAge, 112 years, 1 months and 1 days old person was born on ".$member->{dateofbirth}." if today is ".$relative_date->ymd());
569
570
    $age = '0112-01-01';
571
    C4::Members::SetAge( $member, $age, $relative_date );
572
    $age = C4::Members::GetAge( $member->{dateofbirth}, $relative_date->ymd() );
573
    is ($age, '112', "SetAge ISO_Date, 112 years, 1 months and 1 days old person was born on ".$member->{dateofbirth}." if today is ".$relative_date->ymd());
574
575
    $member->{dateofbirth} = $original_dateofbirth; #It is polite to revert made changes in the unit tests.
576
} #sub testAgeAccessors
577
578
# regression test for bug 16009
498
# regression test for bug 16009
579
my $patron;
499
my $patron;
580
eval {
500
eval {
581
- 

Return to bug 17557