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

(-)a/t/db_dependent/RotatingCollections.t (-50 / +81 lines)
Lines 1-8 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
2
3
# This file is part of Koha.
4
#
5
# Koha is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
9
#
10
# Koha is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
17
3
use Modern::Perl;
18
use Modern::Perl;
4
19
5
use Test::More tests => 41;
20
use Test::More tests => 52;
6
use C4::Context;
21
use C4::Context;
7
use C4::Branch;
22
use C4::Branch;
8
use C4::Biblio;
23
use C4::Biblio;
Lines 48-81 $dbh->do(q|DELETE FROM branchcategories|); Link Here
48
my $collections     = GetCollections();
63
my $collections     = GetCollections();
49
my $countcollection = scalar(@$collections);
64
my $countcollection = scalar(@$collections);
50
65
51
is( CreateCollection( 'Collection1', 'Description1' ),
66
my ($success,$errorCode,$errorMessage);
52
    1, "All parameters have been given - Collection 1 added" );
67
68
($success,$errorCode,$errorMessage) = CreateCollection( 'Collection1', 'Description1' );
69
is( $success, 1, "All parameters have been given - Collection 1 added" );
70
ok( !defined $errorCode && !defined $errorMessage,
71
    "Collection added, no error code or message");
53
my $collection_id1 = $dbh->last_insert_id( undef, undef, 'collections', undef );
72
my $collection_id1 = $dbh->last_insert_id( undef, undef, 'collections', undef );
54
is( CreateCollection( 'Collection2', 'Description2' ),
73
55
    1, "All parameters have been given - Collection 2 added" );
74
($success,$errorCode,$errorMessage) = CreateCollection( 'Collection2', 'Description2' );
75
is( $success, 1, "All parameters have been given - Collection 2 added" );
76
ok( !defined $errorCode && !defined $errorMessage,
77
    "Collection added, no error code or message");
56
my $collection_id2 = $dbh->last_insert_id( undef, undef, 'collections', undef );
78
my $collection_id2 = $dbh->last_insert_id( undef, undef, 'collections', undef );
79
57
$collections = GetCollections();
80
$collections = GetCollections();
58
is(
81
is( scalar(@$collections), $countcollection + 2,
59
    scalar(@$collections),
82
    "Collection1 and Collection2 have been added" );
60
    $countcollection + 2,
83
61
    "Collection1 and Collection2 have been added"
84
($success,$errorCode,$errorMessage) = CreateCollection('Collection3');
62
);
85
is( $success, 1, "Collections can be created without description" );
63
my $collection = CreateCollection('Collection');
86
ok( !defined $errorCode && !defined $errorMessage,
64
is( $collection, 'No Description Given', "The field description is missing" );
87
    "Collection added, no error code or message");
65
$collection = CreateCollection();
88
my $collection_id3 = $dbh->last_insert_id( undef, undef, 'collections', undef );
66
is(
89
67
    $collection,
90
($success,$errorCode,$errorMessage) = CreateCollection();
68
    'No Title Given',
91
is( $success, 0, "Title missing, fails to create collection" );
69
    "The field description and title is missing"
92
is( $errorCode, 1, "Title missing, error code is 1" );
70
);
93
is( $errorMessage, 'NO_TITLE', "Title missing, error message is NO_TITLE" );
94
71
$collections = GetCollections();
95
$collections = GetCollections();
72
is( scalar(@$collections), $countcollection + 2, "No collection added" );
96
is( scalar(@$collections), $countcollection + 3, "Only one collection added" );
73
97
74
#FIXME, as the id is auto incremented, two similar Collections (same title /same description) can be created
98
#FIXME, as the id is auto incremented, two similar Collections (same title /same description) can be created
75
#$collection1 = CreateCollection('Collection1','Description1');
99
#$collection1 = CreateCollection('Collection1','Description1');
76
100
77
#Test GetCollections
101
#Test GetCollections
78
$collection = GetCollections();
102
my $collection = GetCollections();
79
is_deeply(
103
is_deeply(
80
    $collections,
104
    $collections,
81
    [
105
    [
Lines 90-126 is_deeply( Link Here
90
            colTitle      => 'Collection2',
114
            colTitle      => 'Collection2',
91
            colDesc       => 'Description2',
115
            colDesc       => 'Description2',
92
            colBranchcode => undef
116
            colBranchcode => undef
117
        },
118
        {
119
            colId         => $collection_id3,
120
            colTitle      => 'Collection3',
121
            colDesc       => '',
122
            colBranchcode => undef
93
        }
123
        }
124
94
    ],
125
    ],
95
    'All Collections'
126
    'All Collections'
96
);
127
);
97
128
98
#Test UpdateCollection
129
#Test UpdateCollection
99
is(
130
($success,$errorCode,$errorMessage) =
100
    UpdateCollection(
131
    UpdateCollection( $collection_id2, 'Collection2bis', undef );
101
        $collection_id2,
132
is( $success, 1, "UpdateCollection succeeds without description");
102
        'Collection2 modified',
103
        'Description2 modified'
104
    ),
105
    1,
106
    "Collection2 has been modified"
107
);
108
133
109
#FIXME : The following test should pass, currently, with a wrong id UpdateCollection returns 1 even if nothing has been modified
134
($success,$errorCode,$errorMessage) =
110
#is(UpdateCollection(-1,'Collection2 modified','Description2 modified'),
135
    UpdateCollection( $collection_id2, 'Collection2 modified', 'Description2 modified' );
111
#   0,
136
is( $success, 1, "Collection2 has been modified" );
112
#   "UpdateCollection with a wrong id");
137
ok( !defined $errorCode && !defined $errorMessage,
113
is(
138
    "Collection2 modified, no error code or message");
114
    UpdateCollection( 'Collection', 'Description' ),
139
115
    'No Description Given',
140
($success,$errorCode,$errorMessage) =
116
    "UpdateCollection without description"
141
    UpdateCollection( $collection_id2, undef, 'Description' ),
117
);
142
ok( !$success, "UpdateCollection fails without title" );
118
is(
143
is( $errorCode, 2, "Title missing, error code is 2");
119
    UpdateCollection( 'Description' ),
144
is( $errorMessage, 'NO_TITLE', "Title missing, error message is NO_TITLE");
120
    'No Title Given',
145
121
    "UpdateCollection without title"
146
is( UpdateCollection(), 'NO_ID', "UpdateCollection without params" );
122
);
123
is( UpdateCollection(), 'No Id Given', "UpdateCollection without params" );
124
147
125
#Test GetCollection
148
#Test GetCollection
126
my @collection1 = GetCollection($collection_id1);
149
my @collection1 = GetCollection($collection_id1);
Lines 181-190 is_deeply( Link Here
181
    ],
204
    ],
182
    "Collection1 belongs to the sample branch (SAB)"
205
    "Collection1 belongs to the sample branch (SAB)"
183
);
206
);
184
is( TransferCollection, "No Id Given", "TransferCollection without ID" );
207
is( TransferCollection, "NO_ID", "TransferCollection without ID" );
185
is(
208
is(
186
    TransferCollection($collection_id1),
209
    TransferCollection($collection_id1),
187
    "No Branchcode Given",
210
    'NO_BRANCHCODE',
188
    "TransferCollection without branchcode"
211
    "TransferCollection without branchcode"
189
);
212
);
190
213
Lines 224-230 is( AddItemToCollection( $collection_id1, $item_id2 ), Link Here
224
    1, "Sampleitem2 has been added to Collection1" );
247
    1, "Sampleitem2 has been added to Collection1" );
225
248
226
#Test GetItemsInCollection
249
#Test GetItemsInCollection
227
my $itemsincollection1 = GetItemsInCollection($collection_id1);
250
my $itemsincollection1;
251
($itemsincollection1,$success,$errorCode,$errorMessage) = GetItemsInCollection($collection_id1);
228
is( scalar @$itemsincollection1, 2, "Collection1 has 2 items" );
252
is( scalar @$itemsincollection1, 2, "Collection1 has 2 items" );
229
is_deeply(
253
is_deeply(
230
    $itemsincollection1,
254
    $itemsincollection1,
Lines 232-247 is_deeply( Link Here
232
        {
256
        {
233
            title          => undef,
257
            title          => undef,
234
            itemcallnumber => 'callnumber1',
258
            itemcallnumber => 'callnumber1',
259
            biblionumber   => $biblionumber,
235
            barcode        => 1
260
            barcode        => 1
236
        },
261
        },
237
        {
262
        {
238
            title          => undef,
263
            title          => undef,
239
            itemcallnumber => 'callnumber2',
264
            itemcallnumber => 'callnumber2',
265
            biblionumber   => $biblionumber,
240
            barcode        => 2
266
            barcode        => 2
241
        }
267
        }
242
    ],
268
    ],
243
    "Collection1 has Item1 and Item2"
269
    "Collection1 has Item1 and Item2"
244
);
270
);
271
($itemsincollection1,$success,$errorCode,$errorMessage) = GetItemsInCollection();
272
ok( !$success, "GetItemsInCollection fails without a collection ID" );
273
is( $errorCode, 1, "Title missing, error code is 2");
274
is( $errorMessage, 'NO_ID', "Collection ID missing, error message is NO_ID");
245
275
246
#Test RemoveItemFromCollection
276
#Test RemoveItemFromCollection
247
is( RemoveItemFromCollection( $collection_id1, $item_id2 ),
277
is( RemoveItemFromCollection( $collection_id1, $item_id2 ),
Lines 293-307 is( DeleteCollection($collection_id2), 1, "Collection2 deleted" ); Link Here
293
is( DeleteCollection($collection_id1), 1, "Collection1 deleted" );
323
is( DeleteCollection($collection_id1), 1, "Collection1 deleted" );
294
is(
324
is(
295
    DeleteCollection(),
325
    DeleteCollection(),
296
    'No Collection Id Given',
326
    'NO_ID',
297
    "DeleteCollection without id"
327
    "DeleteCollection without id"
298
);
328
);
299
$collections = GetCollections();
329
$collections = GetCollections();
300
is(
330
is(
301
    scalar(@$collections),
331
    scalar(@$collections),
302
    $countcollection + 0,
332
    $countcollection + 1,
303
    "Two Collections have been deleted"
333
    "Two Collections have been deleted"
304
);
334
);
305
335
306
#End transaction
336
#End transaction
307
$dbh->rollback;
337
$dbh->rollback;
308
- 
338
339
1;

Return to bug 8836