|
Line 0
Link Here
|
| 0 |
- |
1 |
#!/usr/bin/perl |
|
|
2 |
|
| 3 |
use Modern::Perl; |
| 4 |
use Test::More tests => 14; |
| 5 |
|
| 6 |
use C4::Context; |
| 7 |
use C4::Members; |
| 8 |
|
| 9 |
use Koha::Borrower::Modifications; |
| 10 |
|
| 11 |
C4::Context->dbh->do("TRUNCATE TABLE borrower_modifications"); |
| 12 |
|
| 13 |
## Create new pending modification |
| 14 |
Koha::Borrower::Modifications->new( verification_token => '1234567890' )->AddModifications({ surname => 'Hall', firstname => 'Kyle' }); |
| 15 |
|
| 16 |
## Get the new pending modification |
| 17 |
my $borrower = Koha::Borrower::Modifications->GetModifications( |
| 18 |
verification_token => '1234567890' |
| 19 |
); |
| 20 |
|
| 21 |
## Verify we get the same data |
| 22 |
ok( $borrower->{'surname'} = 'Hall' ); |
| 23 |
|
| 24 |
## Check the Verify method |
| 25 |
ok( Koha::Borrower::Modifications->Verify( '1234567890' ) ); |
| 26 |
|
| 27 |
## Delete the pending modification |
| 28 |
$borrower = Koha::Borrower::Modifications->DelModifications( |
| 29 |
verification_token => '1234567890' |
| 30 |
); |
| 31 |
|
| 32 |
## Verify it's no longer in the database |
| 33 |
$borrower = Koha::Borrower::Modifications->GetModifications( |
| 34 |
verification_token => '1234567890' |
| 35 |
); |
| 36 |
ok( !defined( $borrower->{'surname'} ) ); |
| 37 |
|
| 38 |
## Check the Verify method |
| 39 |
ok( !Koha::Borrower::Modifications->Verify( '1234567890' ) ); |
| 40 |
|
| 41 |
## Create new pending modification, but for an existing borrower |
| 42 |
Koha::Borrower::Modifications->new( borrowernumber => '2' )->AddModifications({ surname => 'Hall', firstname => 'Kyle' }); |
| 43 |
|
| 44 |
## Test the counter |
| 45 |
ok( Koha::Borrower::Modifications->GetPendingModificationsCount() == 1 ); |
| 46 |
|
| 47 |
## Create new pending modification for another existing borrower |
| 48 |
Koha::Borrower::Modifications->new( borrowernumber => '3' )->AddModifications({ surname => 'Smith', firstname => 'Sandy' }); |
| 49 |
|
| 50 |
## Test the counter |
| 51 |
ok( Koha::Borrower::Modifications->GetPendingModificationsCount() == 2 ); |
| 52 |
|
| 53 |
## Check GetPendingModifications |
| 54 |
my $pending = Koha::Borrower::Modifications->GetPendingModifications(); |
| 55 |
ok( $pending->[0]->{'firstname'} eq 'Kyle' ); |
| 56 |
ok( $pending->[1]->{'firstname'} eq 'Sandy' ); |
| 57 |
|
| 58 |
## This should delete the row from the table |
| 59 |
Koha::Borrower::Modifications->DenyModifications( '3' ); |
| 60 |
|
| 61 |
## Test the counter |
| 62 |
ok( Koha::Borrower::Modifications->GetPendingModificationsCount() == 1 ); |
| 63 |
|
| 64 |
## Save a copy of the borrowers original data |
| 65 |
my $old_borrower = GetMember(borrowernumber => '2' ); |
| 66 |
|
| 67 |
## Apply the modifications |
| 68 |
Koha::Borrower::Modifications->ApproveModifications( '2' ); |
| 69 |
|
| 70 |
## Test the counter |
| 71 |
ok( Koha::Borrower::Modifications->GetPendingModificationsCount() == 0 ); |
| 72 |
|
| 73 |
## Get a copy of the borrowers current data |
| 74 |
my $new_borrower = GetMember(borrowernumber => '2' ); |
| 75 |
|
| 76 |
## Check to see that the approved modifications were saved |
| 77 |
ok( $new_borrower->{'surname'} eq 'Hall' ); |
| 78 |
|
| 79 |
## Now let's put it back the way it was |
| 80 |
Koha::Borrower::Modifications->new( borrowernumber => '2' )->AddModifications({ surname => $old_borrower->{'surname'}, firstname => $old_borrower->{'firstname'} }); |
| 81 |
|
| 82 |
## Test the counter |
| 83 |
ok( Koha::Borrower::Modifications->GetPendingModificationsCount() == 1 ); |
| 84 |
|
| 85 |
## Apply the modifications |
| 86 |
Koha::Borrower::Modifications->ApproveModifications( '2' ); |
| 87 |
|
| 88 |
## Test the counter |
| 89 |
ok( Koha::Borrower::Modifications->GetPendingModificationsCount() == 0 ); |
| 90 |
|
| 91 |
$new_borrower = GetMember(borrowernumber => '2' ); |
| 92 |
|
| 93 |
## Test to verify the borrower has been updated with the original values |
| 94 |
ok( $new_borrower->{'surname'} eq $old_borrower->{'surname'} ); |