Bugzilla – Attachment 67867 Details for
Bug 17492
Show warning if patron's age is out of category limits
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 17492: (followup) Added missing tests
Bug-17492-followup-Added-missing-tests.patch (text/plain), 4.96 KB, created by
Radek Šiman (R-Bit Technology, s.r.o.)
on 2017-10-10 12:12:11 UTC
(
hide
)
Description:
Bug 17492: (followup) Added missing tests
Filename:
MIME Type:
Creator:
Radek Šiman (R-Bit Technology, s.r.o.)
Created:
2017-10-10 12:12:11 UTC
Size:
4.96 KB
patch
obsolete
>From 4c84c0e1ee1ff0c367c3a3c0ea04756917a28060 Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?Radek=20=C5=A0iman?= <rbit@rbit.cz> >Date: Tue, 10 Oct 2017 11:46:01 +0200 >Subject: [PATCH] Bug 17492: (followup) Added missing tests > >This patch only adds a missing condition to test defined age in >is_category_valid method. The other task of this patch is to add missing >automated db-dependent tests. > >Test plan: >1) Apply patch >2) Create a patron and assign him a category having age limits set >3) Change patron's age to be older/younger than category's limits >4) At "Check out" and "Details" tabs you should see a warning with a >button allowing to change the category, eg.: > - http://prntscr.com/cz7ch3 > - http://prntscr.com/cz7em4 > - http://prntscr.com/cz7dj1 >5) Set a valid category according to patron's age >6) Warning should disappear >7) Perform similar test again, but instead of changing the age change >the limits of a category >8) During tests verify "Change category" button everytime opens "Modify >patron" page: > http://prntscr.com/cz7g5q >9) Ensure that left-side panel is always on its expected place >10) Remove patron's date of birth and test that all categories are >allowed now >11) Run automated tests: prove t/db_dependent/Koha/Patron.t >--- > Koha/Patron.pm | 2 +- > t/db_dependent/Koha/Patrons.t | 60 ++++++++++++++++++++++++++++++++++++++++++- > 2 files changed, 60 insertions(+), 2 deletions(-) > >diff --git a/Koha/Patron.pm b/Koha/Patron.pm >index d444111..982bc05 100644 >--- a/Koha/Patron.pm >+++ b/Koha/Patron.pm >@@ -583,7 +583,7 @@ sub is_category_valid { > my $patroncategory = $self->category; > my ($low,$high) = ($patroncategory->dateofbirthrequired, $patroncategory->upperagelimit); > >- return (($high && ($age > $high)) or ($age < $low)) ? 0 : 1; >+ return (defined($age) && (($high && ($age > $high)) or ($age < $low))) ? 0 : 1; > } > > =head3 account >diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t >index a0a19fd..35b5d36 100644 >--- a/t/db_dependent/Koha/Patrons.t >+++ b/t/db_dependent/Koha/Patrons.t >@@ -19,7 +19,7 @@ > > use Modern::Perl; > >-use Test::More tests => 22; >+use Test::More tests => 23; > use Test::Warn; > use Time::Fake; > use DateTime; >@@ -531,6 +531,64 @@ subtest 'get_age' => sub { > $patron->delete; > }; > >+subtest 'is_category_valid' => sub { >+ plan tests => 10; >+ >+ my $today = dt_from_string; >+ >+ my $category = $builder->build({ >+ source => 'Category', >+ value => { >+ categorycode => 'AGE_5_10', >+ dateofbirthrequired => 5, >+ upperagelimit => 10 >+ } >+ }); >+ $category = Koha::Patron::Categories->find( $category->{categorycode} ); >+ >+ my $patron = $builder->build({ >+ source => 'Borrower', >+ value => { >+ categorycode => 'AGE_5_10' >+ } >+ }); >+ $patron = Koha::Patrons->find( $patron->{borrowernumber} ); >+ >+ >+ $patron->dateofbirth( undef ); >+ is( $patron->is_category_valid, 1, 'Patron with no dateofbirth is always valid for any category'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -12, months => -6, days => -1 ) ); >+ is( $patron->is_category_valid, 0, 'Patron is 12, so his age is above allowed range 5-10 years'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -3, months => -6, days => -1 ) ); >+ is( $patron->is_category_valid, 0, 'Patron is 3, so his age is below allowed range 5-10 years'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -7, months => -6, days => -1 ) ); >+ is( $patron->is_category_valid, 1, 'Patron is 7, so his age perfectly suits allowed range 5-10 years'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -5, months => 0, days => 0 ) ); >+ is( $patron->is_category_valid, 1, 'Patron celebrates the 5th birthday today, so he is allowed for this category'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -5, months => 0, days => 1 ) ); >+ is( $patron->is_category_valid, 0, 'Patron will celebrate the 5th birthday tomorrow, so he is NOT allowed for this category'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -5, months => 0, days => -1 ) ); >+ is( $patron->is_category_valid, 1, 'Patron celebrated the 5th birthday yesterday, so he is allowed for this category'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -11, months => 0, days => 0 ) ); >+ is( $patron->is_category_valid, 0, 'Patron celebrate the 11th birthday today, so he is NOT allowed for this category'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -11, months => 0, days => 1 ) ); >+ is( $patron->is_category_valid, 1, 'Patron will celebrate the 11th birthday tomorrow, so he is allowed for this category'); >+ >+ $patron->dateofbirth( $today->clone->add( years => -11, months => 0, days => -1 ) ); >+ is( $patron->is_category_valid, 0, 'Patron celebrated the 11th birthday yesterday, so he is NOT allowed for this category'); >+ >+ $patron->delete; >+ $category->delete; >+}; >+ > subtest 'account' => sub { > plan tests => 1; > >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 17492
:
56805
|
56806
|
56874
|
56933
|
56934
|
56935
|
56936
|
56937
|
56976
|
56985
|
56986
|
56987
|
56988
|
56989
|
56990
|
56995
|
62860
|
67040
|
67041
|
67042
|
67850
|
67851
|
67867
|
67868
|
68139
|
68140
|
68141
|
68142
|
68143
|
68144
|
68145
|
91028
|
91029
|
91044
|
91045
|
91098
|
91099
|
91100