5 use Test::More tests => 41;
12 use_ok('C4::RotatingCollections');
16 'C4::RotatingCollections',
22 GetCollectionItemBranches
25 RemoveItemFromCollection
29 isItemInThisCollection
34 my $dbh = C4::Context->dbh;
35 $dbh->{RaiseError} = 1;
36 $dbh->{AutoCommit} = 0;
39 $dbh->do(q|DELETE FROM issues |);
40 $dbh->do(q|DELETE FROM borrowers |);
41 $dbh->do(q|DELETE FROM items |);
42 $dbh->do(q|DELETE FROM collections_tracking |);
43 $dbh->do(q|DELETE FROM collections |);
44 $dbh->do(q|DELETE FROM branches |);
45 $dbh->do(q|DELETE FROM categories|);
46 $dbh->do(q|DELETE FROM branchcategories|);
48 #Test CreateCollection
49 my $collections = GetCollections;
50 my $countcollection = scalar(@$collections);
52 is( CreateCollection( 'Collection1', 'Description1' ),
53 1, "All parameters have been given - Collection 1 added" );
54 my $collection_id1 = $dbh->last_insert_id( undef, undef, 'collections', undef );
55 is( CreateCollection( 'Collection2', 'Description2' ),
56 1, "All parameters have been given - Collection 2 added" );
57 my $collection_id2 = $dbh->last_insert_id( undef, undef, 'collections', undef );
58 $collections = GetCollections;
60 scalar(@$collections),
62 "Collection1 and Collection2 have been added"
64 my $collection = CreateCollection('Collection');
65 is( $collection, 'No Description Given', "The field description is missing" );
66 $collection = CreateCollection();
70 "The field description and title is missing"
72 $collections = GetCollections;
73 is( scalar(@$collections), $countcollection + 2, "No collection added" );
75 #FIXME, as the id is auto incremented, two similar Collections (same title /same description) can be created
76 #$collection1 = CreateCollection('Collection1','Description1');
79 $collection = GetCollections;
84 colId => $collection_id1,
85 colTitle => 'Collection1',
86 colDesc => 'Description1',
87 colBranchcode => undef
90 colId => $collection_id2,
91 colTitle => 'Collection2',
92 colDesc => 'Description2',
93 colBranchcode => undef
99 #Test UpdateCollection
103 'Collection2 modified',
104 'Description2 modified'
107 "Collection2 has been modified"
110 #FIXME : The following test should pass, currently, with a wrong id UpdateCollection returns 1 even if nothing has been modified
111 #is(UpdateCollection(-1,'Collection2 modified','Description2 modified'),
113 # "UpdateCollection with a wrong id");
115 UpdateCollection( 'Collection', 'Description' ),
116 'No Description Given',
117 "UpdateCollection without description"
120 UpdateCollection( 'Description' ),
122 "UpdateCollection without title"
124 is( UpdateCollection(), 'No Id Given', "UpdateCollection without params" );
127 my @collection1 = GetCollection($collection_id1);
130 [ $collection_id1, 'Collection1', 'Description1', undef ],
131 "Collection1's informations"
133 my @collection2 = GetCollection($collection_id2);
136 [ $collection_id2, 'Collection2 modified', 'Description2 modified', undef ],
137 "Collection2's informations"
139 my @undef_collection = GetCollection();
142 [ undef, undef, undef, undef ],
143 "GetCollection without id given"
145 @undef_collection = GetCollection(-1);
148 [ undef, undef, undef, undef ],
149 "GetCollection with a wrong id"
152 #Test TransferCollection
156 branchname => 'Sample Branch',
157 branchaddress1 => 'sample adr1',
158 branchaddress2 => 'sample adr2',
159 branchaddress3 => 'sample adr3',
160 branchzip => 'sample zip',
161 branchcity => 'sample city',
162 branchstate => 'sample state',
163 branchcountry => 'sample country',
164 branchphone => 'sample phone',
165 branchfax => 'sample fax',
166 branchemail => 'sample email',
167 branchurl => 'sample url',
168 branchip => 'sample ip',
169 branchprinter => undef,
170 branchnotes => 'sample note',
171 opac_info => 'sample opac',
173 ModBranch($samplebranch);
174 is( TransferCollection( $collection_id1, $samplebranch->{branchcode} ),
175 1, "Collection1 has been transfered in the branch SAB" );
176 @collection1 = GetCollection($collection_id1);
180 $collection_id1, 'Collection1',
181 'Description1', $samplebranch->{branchcode}
183 "Collection1 belongs to the sample branch (SAB)"
185 is( TransferCollection, "No Id Given", "TransferCollection without ID" );
187 TransferCollection($collection_id1),
188 "No Branchcode Given",
189 "TransferCollection without branchcode"
192 #Test AddItemToCollection
193 my $record = MARC::Record->new();
194 $record->append_fields(
197 a => $samplebranch->{branchcode},
198 b => $samplebranch->{branchcode}
201 my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio( $record, '', );
202 my @sampleitem1 = C4::Items::AddItem(
205 itemcallnumber => 'callnumber1',
206 homebranch => $samplebranch->{branchcode},
207 holdingbranch => $samplebranch->{branchcode}
211 my $item_id1 = $sampleitem1[2];
212 my @sampleitem2 = C4::Items::AddItem(
215 itemcallnumber => 'callnumber2',
216 homebranch => $samplebranch->{branchcode},
217 holdingbranch => $samplebranch->{branchcode}
221 my $item_id2 = $sampleitem2[2];
222 is( AddItemToCollection( $collection_id1, $item_id1 ),
223 1, "Sampleitem1 has been added to Collection1" );
224 is( AddItemToCollection( $collection_id1, $item_id2 ),
225 1, "Sampleitem2 has been added to Collection1" );
227 #Test GetItemsInCollection
228 my $itemsincollection1 = GetItemsInCollection($collection_id1);
229 is( scalar @$itemsincollection1, 2, "Collection1 has 2 items" );
235 itemcallnumber => 'callnumber1',
240 itemcallnumber => 'callnumber2',
244 "Collection1 has Item1 and Item2"
247 #Test RemoveItemFromCollection
248 is( RemoveItemFromCollection( $collection_id1, $item_id2 ),
249 1, "Item2 has been removed from collection 1" );
250 $itemsincollection1 = GetItemsInCollection($collection_id1);
251 is( scalar @$itemsincollection1, 1, "Collection1 has 1 items" );
253 #Test isItemInAnyCollection
254 is( C4::RotatingCollections::isItemInAnyCollection($item_id1),
255 1, "Item1 is in a collection" );
256 is( C4::RotatingCollections::isItemInAnyCollection($item_id2),
257 0, "Item2 is not in a collection" );
258 is( C4::RotatingCollections::isItemInAnyCollection(),
259 0, "isItemInAnyCollection returns 0 if no itemid given " );
260 is( C4::RotatingCollections::isItemInAnyCollection(-1),
261 0, "isItemInAnyCollection returns 0 if a wrong id is given" );
263 #Test isItemInThisCollection
265 C4::RotatingCollections::isItemInThisCollection(
266 $item_id1, $collection_id1
269 "Item1 is in the Collection1"
272 C4::RotatingCollections::isItemInThisCollection(
273 $item_id1, $collection_id2
276 "Item1 is not in the Collection2"
279 C4::RotatingCollections::isItemInThisCollection(
280 $item_id2, $collection_id2
283 "Item2 is not in the Collection2"
285 is( C4::RotatingCollections::isItemInThisCollection($collection_id1),
286 0, "isItemInThisCollection returns 0 is ItemId is missing" );
287 is( C4::RotatingCollections::isItemInThisCollection($item_id1),
288 0, "isItemInThisCollection returns 0 is Collectionid if missing" );
289 is( C4::RotatingCollections::isItemInThisCollection(),
290 0, "isItemInThisCollection returns 0 if no params given" );
292 #Test DeleteCollection
293 is( DeleteCollection($collection_id2), 1, "Collection2 deleted" );
294 is( DeleteCollection($collection_id1), 1, "Collection1 deleted" );
297 'No Collection Id Given',
298 "DeleteCollection without id"
300 $collections = GetCollections;
302 scalar(@$collections),
303 $countcollection + 0,
304 "Two Collections have been deleted"