1 package KohaTest::Members::GetMember;
2 use base qw( KohaTest::Members );
11 sub testing_class { 'C4::Members' }
13 =head2 STARTUP METHODS
15 These get run once, before the main test methods in this module
17 =head3 startup_create_borrower
19 Creates a new borrower to use for these tests. Class variables that are
20 used to search by are stored for easy access by the methods.
24 sub startup_create_borrower : Test( startup => 1 ) {
28 surname => 'surname' . $self->random_string(),
29 firstname => 'firstname' . $self->random_string(),
30 address => 'address' . $self->random_string(),
31 city => 'city' . $self->random_string(),
32 cardnumber => 'card' . $self->random_string(),
34 categorycode => 'B', # B => Board
35 dateexpiry => '2020-01-01',
36 password => 'testpassword',
38 dateofbirth => $self->random_date(),
41 my $borrowernumber = AddMember( %$memberinfo );
42 ok( $borrowernumber, "created member: $borrowernumber" );
43 $self->{get_new_borrowernumber} = $borrowernumber;
44 $self->{get_new_cardnumber} = $memberinfo->{cardnumber};
45 $self->{get_new_firstname} = $memberinfo->{firstname};
46 $self->{get_new_userid} = $memberinfo->{userid};
51 =head2 TESTING METHODS
55 =head3 borrowernumber_get
57 Validates that GetMember can search by borrowernumber
61 sub borrowernumber_get : Test( 6 ) {
64 ok( $self->{get_new_borrowernumber},
65 "we have a valid memberid $self->{get_new_borrowernumber} to test with" );
67 #search by borrowernumber
69 C4::Members::GetMember( $self->{get_new_borrowernumber}, 'borrowernumber' );
70 ok( $results, 'we successfully called GetMember searching by borrowernumber' );
72 ok( exists $results->{borrowernumber},
73 'member details has a "borrowernumber" attribute' );
74 is( $results->{borrowernumber},
75 $self->{get_new_borrowernumber},
76 '...and it matches the created borrowernumber'
79 ok( exists $results->{'category_type'}, "categories in the join returned values" );
80 ok( $results->{description}, "...and description is valid: $results->{description}" );
85 Validates that GetMember can search by cardnumber
89 sub cardnumber_get : Test( 6 ) {
92 ok( $self->{get_new_cardnumber},
93 "we have a valid cardnumber $self->{get_new_cardnumber} to test with" );
96 my $results = C4::Members::GetMember( $self->{get_new_cardnumber}, 'cardnumber' );
97 ok( $results, 'we successfully called GetMember searching by cardnumber' );
99 ok( exists $results->{cardnumber}, 'member details has a "cardnumber" attribute' );
100 is( $results->{cardnumber},
101 $self->{get_new_cardnumber},
102 '..and it matches the created cardnumber'
105 ok( exists $results->{'category_type'}, "categories in the join returned values" );
106 ok( $results->{description}, "...and description is valid: $results->{description}" );
111 Validates that GetMember can search by firstname.
112 Note that only the first result is used.
116 sub firstname_get : Test( 6 ) {
119 ok( $self->{get_new_firstname},
120 "we have a valid firstname $self->{get_new_firstname} to test with" );
122 ##search by firstname
123 my $results = C4::Members::GetMember( $self->{get_new_firstname}, 'firstname' );
124 ok( $results, 'we successfully called GetMember searching by firstname' );
126 ok( exists $results->{firstname}, 'member details has a "firstname" attribute' );
127 is( $results->{'firstname'},
128 $self->{get_new_firstname},
129 '..and it matches the created firstname'
132 ok( exists $results->{'category_type'}, "categories in the join returned values" );
133 ok( $results->{description}, "...and description is valid: $results->{description}" );
138 Validates that GetMember can search by userid.
142 sub userid_get : Test( 6 ) {
145 ok( $self->{get_new_userid},
146 "we have a valid userid $self->{get_new_userid} to test with" );
149 my $results = C4::Members::GetMember( $self->{get_new_userid}, 'userid' );
150 ok( $results, 'we successfully called GetMember searching by userid' );
152 ok( exists $results->{'userid'}, 'member details has a "userid" attribute' );
153 is( $results->{userid},
154 $self->{get_new_userid},
155 '..and it matches the created userid'
158 ok( exists $results->{'category_type'}, "categories in the join returned values" );
159 ok( $results->{description}, "...and description is valid: $results->{description}" );
162 =head3 missing_params
164 Validates that GetMember returns undef when no parameters are passed to it
168 sub missing_params : Test( 1 ) {
171 my $results = C4::Members::GetMember();
173 ok( !defined $results, 'returned undef when no parameters passed' );
177 =head2 SHUTDOWN METHODS
179 These get run once, after the main test methods in this module
181 =head3 shutdown_remove_borrower
183 Remove the new borrower information that was created in the startup method
187 sub shutdown_remove_borrower : Test( shutdown => 0 ) {
190 delete $self->{get_new_borrowernumber};
191 delete $self->{get_new_cardnumber};
192 delete $self->{get_new_firstname};
193 delete $self->{get_new_userid};