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

(-)a/t/db_dependent/Circulation_transfers.t (-1 / +199 lines)
Line 0 Link Here
0
- 
1
#!/usr/bin/perl
2
3
use Modern::Perl;
4
use C4::Biblio;
5
use C4::Context;
6
use C4::Items;
7
use C4::Branch;
8
use C4::Circulation;
9
use Koha::DateUtils;
10
use DateTime::Duration;
11
12
use Test::More tests => 12;
13
14
BEGIN {
15
    use_ok('C4::Circulation');
16
}
17
can_ok(
18
    'C4::Circulation',
19
    qw(
20
      CreateBranchTransferLimit
21
      DeleteBranchTransferLimits
22
      DeleteTransfer
23
      GetTransfers
24
      GetTransfersFromTo
25
      )
26
);
27
28
#Start transaction
29
my $dbh = C4::Context->dbh;
30
$dbh->{RaiseError} = 1;
31
$dbh->{AutoCommit} = 0;
32
33
$dbh->do(q|DELETE FROM issues|);
34
$dbh->do(q|DELETE FROM borrowers|);
35
$dbh->do(q|DELETE FROM items|);
36
$dbh->do(q|DELETE FROM branches|);
37
$dbh->do(q|DELETE FROM branch_transfer_limits|);
38
$dbh->do(q|DELETE FROM branchtransfers|);
39
40
#Add sample datas
41
#Add branches
42
my $samplebranch1 = {
43
    add            => 1,
44
    branchcode     => 'SAB1',
45
    branchname     => 'Sample Branch',
46
    branchaddress1 => 'sample adr1',
47
    branchaddress2 => 'sample adr2',
48
    branchaddress3 => 'sample adr3',
49
    branchzip      => 'sample zip',
50
    branchcity     => 'sample city',
51
    branchstate    => 'sample state',
52
    branchcountry  => 'sample country',
53
    branchphone    => 'sample phone',
54
    branchfax      => 'sample fax',
55
    branchemail    => 'sample email',
56
    branchurl      => 'sample url',
57
    branchip       => 'sample ip',
58
    branchprinter  => undef,
59
    opac_info      => 'sample opac',
60
};
61
my $samplebranch2 = {
62
    add            => 1,
63
    branchcode     => 'SAB2',
64
    branchname     => 'Sample Branch2',
65
    branchaddress1 => 'sample adr1_2',
66
    branchaddress2 => 'sample adr2_2',
67
    branchaddress3 => 'sample adr3_2',
68
    branchzip      => 'sample zip2',
69
    branchcity     => 'sample city2',
70
    branchstate    => 'sample state2',
71
    branchcountry  => 'sample country2',
72
    branchphone    => 'sample phone2',
73
    branchfax      => 'sample fax2',
74
    branchemail    => 'sample email2',
75
    branchurl      => 'sample url2',
76
    branchip       => 'sample ip2',
77
    branchprinter  => undef,
78
    opac_info      => 'sample opac2',
79
};
80
ModBranch($samplebranch1);
81
ModBranch($samplebranch2);
82
83
#Add biblio and items
84
my $record = MARC::Record->new();
85
$record->append_fields(
86
    MARC::Field->new( '952', '0', '0', a => $samplebranch1->{branchcode} ) );
87
my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio( $record, '', );
88
89
my @sampleitem1 = C4::Items::AddItem(
90
    {
91
        barcode        => 1,
92
        itemcallnumber => 'callnumber1',
93
        homebranch     => $samplebranch1->{branchcode},
94
        holdingbranch  => $samplebranch1->{branchcode}
95
    },
96
    $biblionumber
97
);
98
my $item_id1    = $sampleitem1[2];
99
my @sampleitem2 = C4::Items::AddItem(
100
    {
101
        barcode        => 2,
102
        itemcallnumber => 'callnumber2',
103
        homebranch     => $samplebranch1->{branchcode},
104
        holdingbranch  => $samplebranch1->{branchcode}
105
    },
106
    $biblionumber
107
);
108
my $item_id2 = $sampleitem2[2];
109
110
#Add transfers
111
ModItemTransfer(
112
    $item_id1,
113
    $samplebranch1->{branchcode},
114
    $samplebranch2->{branchcode}
115
);
116
ModItemTransfer(
117
    $item_id2,
118
    $samplebranch1->{branchcode},
119
    $samplebranch2->{branchcode}
120
);
121
122
#Begin Tests
123
#Test CreateBranchTransferLimit
124
is(
125
    CreateBranchTransferLimit(
126
        $samplebranch2->{branchcode},
127
        $samplebranch1->{branchcode}, 'CODE'
128
    ),
129
    1,
130
    "A Branch TransferLimit has been added"
131
);
132
#FIXME :The following test should pass but doesn't because currently the routine CreateBranchTransferLimit returns nothing
133
#is(CreateBranchTransferLimit(),undef,"Without parameters CreateBranchTransferLimit returns undef");
134
135
#Test GetTransfers
136
my $dt_today = dt_from_string( undef, 'sql', undef );
137
my $today = $dt_today->strftime("%Y-%m-%d %H:%M:%S");
138
139
my @transfers = GetTransfers($item_id1);
140
is_deeply(
141
    \@transfers,
142
    [ $today, $samplebranch1->{branchcode}, $samplebranch2->{branchcode} ],
143
    "Transfers of the item1"
144
);    #NOTE: Only the first transfer is returned
145
@transfers = GetTransfers;
146
is_deeply( \@transfers, [],
147
    "GetTransfers without params returns an empty array" );
148
@transfers = GetTransfers(-1);
149
is_deeply( \@transfers, [],
150
    "GetTransfers with a wrong item id returns an empty array" );
151
152
#Test GetTransfersFromTo
153
my @transferfrom1to2 = GetTransfersFromTo( $samplebranch1->{branchcode},
154
    $samplebranch2->{branchcode} );
155
is_deeply(
156
    \@transferfrom1to2,
157
    [
158
        {
159
            itemnumber => $item_id1,
160
            datesent   => $today,
161
            frombranch => $samplebranch1->{branchcode}
162
        },
163
        {
164
            itemnumber => $item_id2,
165
            datesent   => $today,
166
            frombranch => $samplebranch1->{branchcode}
167
        }
168
    ],
169
    "Item1 and Item2 has been transfered from branch1 to branch2"
170
);
171
my @transferto = GetTransfersFromTo( undef, $samplebranch2->{branchcode} );
172
is_deeply( \@transferto, [],
173
    "GetTransfersfromTo without frombranch returns an empty array" );
174
my @transferfrom = GetTransfersFromTo( $samplebranch1->{branchcode} );
175
is_deeply( \@transferfrom, [],
176
    "GetTransfersfromTo without tobranch returns an empty array" );
177
@transferfrom = GetTransfersFromTo();
178
is_deeply( \@transferfrom, [],
179
    "GetTransfersfromTo without params returns an empty array" );
180
181
#Test DeleteBranchTransferLimits
182
is(
183
    C4::Circulation::DeleteBranchTransferLimits( $samplebranch1->{branchcode} ),
184
    1,
185
    "A Branch TransferLimit has been deleted"
186
);
187
#FIXME :The following test should pass but doesn't because currently the routine DeleteBranchTransferLimit returns nothin
188
#is(C4::Circulation::DeleteBranchTransferLimits(),undef,"Without parameters DeleteBranchTransferLimit returns undef");
189
190
#Test DeleteTransfer
191
is( C4::Circulation::DeleteTransfer($item_id1),
192
    1, "A the item1's transfer has been deleted" );
193
#FIXME :The following tests should pass but don't because currently the routine DeleteTransfer returns nothing
194
#is(C4::Circulation::DeleteTransfer(),undef,"Without itemid DeleteTransfer returns undef");
195
#is(C4::Circulation::DeleteTransfer(-1),0,"with a wrong itemid DeleteTranfer returns 0");
196
197
#End transaction
198
$dbh->rollback;
199

Return to bug 10692