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

(-)a/t/db_dependent/Circulation.t (-8 / +122 lines)
Lines 1-21 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
use Test::More tests => 16;
3
use Modern::Perl;
4
5
use DateTime;
6
use C4::Biblio;
7
use C4::Branch;
8
use C4::Items;
9
use C4::Members;
10
use C4::Reserves;
11
12
use Test::More tests => 20;
4
13
5
BEGIN {
14
BEGIN {
6
    use_ok('C4::Circulation');
15
    use_ok('C4::Circulation');
7
}
16
}
8
17
18
my $dbh = C4::Context->dbh;
19
20
# Start transaction
21
$dbh->{AutoCommit} = 0;
22
$dbh->{RaiseError} = 1;
23
9
my $CircControl = C4::Context->preference('CircControl');
24
my $CircControl = C4::Context->preference('CircControl');
10
my $HomeOrHoldingBranch = C4::Context->preference('HomeOrHoldingBranch');
25
my $HomeOrHoldingBranch = C4::Context->preference('HomeOrHoldingBranch');
11
26
12
my $item = {
27
my $item = {
13
    homebranch => 'ItemHomeBranch',
28
    homebranch => 'MPL',
14
    holdingbranch => 'ItemHoldingBranch'
29
    holdingbranch => 'MPL'
15
};
30
};
16
31
17
my $borrower = {
32
my $borrower = {
18
    branchcode => 'BorrowerBranch'
33
    branchcode => 'MPL'
19
};
34
};
20
35
21
# No userenv, PickupLibrary
36
# No userenv, PickupLibrary
Lines 59-66 is( Link Here
59
74
60
diag('Now, set a userenv');
75
diag('Now, set a userenv');
61
C4::Context->_new_userenv('xxx');
76
C4::Context->_new_userenv('xxx');
62
C4::Context::set_userenv(0,0,0,'firstname','surname', 'CurrentBranch', 'CurrentBranchName', '', '', '');
77
C4::Context::set_userenv(0,0,0,'firstname','surname', 'MPL', 'Midway Public Library', '', '', '');
63
is(C4::Context->userenv->{branch}, 'CurrentBranch', 'userenv set');
78
is(C4::Context->userenv->{branch}, 'MPL', 'userenv set');
64
79
65
# Userenv set, PickupLibrary
80
# Userenv set, PickupLibrary
66
C4::Context->set_preference('CircControl', 'PickupLibrary');
81
C4::Context->set_preference('CircControl', 'PickupLibrary');
Lines 71-77 is( Link Here
71
);
86
);
72
is(
87
is(
73
    C4::Circulation::_GetCircControlBranch($item, $borrower),
88
    C4::Circulation::_GetCircControlBranch($item, $borrower),
74
    'CurrentBranch',
89
    'MPL',
75
    '_GetCircControlBranch returned current branch'
90
    '_GetCircControlBranch returned current branch'
76
);
91
);
77
92
Lines 125-127 ok( $new_count == $original_count + 1, 'ProcessOfflinePayment makes payment cor Link Here
125
140
126
C4::Context->dbh->do("DELETE FROM accountlines WHERE borrowernumber IN ( SELECT borrowernumber FROM borrowers WHERE cardnumber = '99999999999' )");
141
C4::Context->dbh->do("DELETE FROM accountlines WHERE borrowernumber IN ( SELECT borrowernumber FROM borrowers WHERE cardnumber = '99999999999' )");
127
C4::Context->dbh->do("DELETE FROM borrowers WHERE cardnumber = '99999999999'");
142
C4::Context->dbh->do("DELETE FROM borrowers WHERE cardnumber = '99999999999'");
128
- 
143
144
{
145
    # CanBookBeRenewed tests
146
147
    # Generate test biblio
148
    my $biblio = MARC::Record->new();
149
    my $title = 'Silence in the library';
150
    $biblio->append_fields(
151
        MARC::Field->new('100', ' ', ' ', a => 'Moffat, Steven'),
152
        MARC::Field->new('245', ' ', ' ', a => $title),
153
    );
154
155
    my ($biblionumber, $biblioitemnumber);
156
    ($biblionumber, $biblioitemnumber) = AddBiblio($biblio, '');
157
158
    my $barcode = 'R00000342';
159
    my $branch = 'MPL';
160
161
    my ($item_bibnum, $item_bibitemnum, $itemnumber) =
162
        AddItem({ homebranch => $branch,
163
                  holdingbranch => $branch,
164
                  barcode => $barcode } , $biblionumber);
165
166
    # Create a borrower
167
    my %renewing_borrower_data = (
168
        firstname =>  'Renewal',
169
        surname => 'John',
170
        categorycode => 'S',
171
        branchcode => $branch,
172
    );
173
174
    my %reserving_borrower_data = (
175
        firstname =>  'Reservation',
176
        surname => 'Katrin',
177
        categorycode => 'S',
178
        branchcode => $branch,
179
    );
180
181
    my $renewing_borrowernumber = AddMember(%renewing_borrower_data);
182
    my $reserving_borrowernumber = AddMember(%reserving_borrower_data);
183
184
    my $renewing_borrower = GetMember( borrowernumber => $renewing_borrowernumber );
185
186
    my $constraint     = 'a';
187
    my $bibitems       = '';
188
    my $priority       = '1';
189
    my $resdate        = undef;
190
    my $expdate        = undef;
191
    my $notes          = '';
192
    my $checkitem      = undef;
193
    my $found          = undef;
194
195
    my $now = DateTime->now();
196
    my $cancelreserve = 1;
197
198
    AddIssue( $renewing_borrower, $barcode, $now, $cancelreserve, $now );
199
200
#    my ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber);
201
#    is( $renewokay, 1, 'Can renew, book not reserved');
202
203
    diag("Biblio-level reserve, renewal test");
204
    AddReserve(
205
        $branch, $reserving_borrowernumber, $biblionumber,
206
        $constraint, $bibitems,  $priority, $resdate, $expdate, $notes,
207
        $title, $checkitem, $found
208
    );
209
210
    my ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber);
211
212
    is( $renewokay, 0, '(Bug 10663) Cannot renew, item reserved');
213
    is( $error, 'on_reserve', '(Bug 10663) Cannot renew, item reserved (returned error is on_reserve');
214
215
    CancelReserve({
216
        biblionumber => $biblionumber,
217
        borrowernumber => $reserving_borrowernumber,
218
    });
219
220
221
    diag("Item-level reserve, renewal test");
222
    AddReserve(
223
        $branch, $reserving_borrowernumber, $biblionumber,
224
        $constraint, $bibitems,  $priority, $resdate, $expdate, $notes,
225
        $title, $itemnumber, $found
226
    );
227
228
    ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber);
229
230
    is( $renewokay, 0, '(Bug 10663) Cannot renew, item reserved');
231
    is( $error, 'on_reserve', '(Bug 10663) Cannot renew, item reserved (returned error is on_reserve');
232
233
    CancelReserve({
234
        biblionumber => $biblionumber,
235
        borrowernumber => $reserving_borrowernumber,
236
        itemnumber => $itemnumber
237
    });
238
239
}
240
241
242
$dbh->rollback;

Return to bug 10663