Lines 5-23
Link Here
|
5 |
# Author : Antoine Farnault, antoine@koha-fr.org |
5 |
# Author : Antoine Farnault, antoine@koha-fr.org |
6 |
# |
6 |
# |
7 |
|
7 |
|
8 |
use strict; |
8 |
use Modern::Perl; |
9 |
use warnings; |
|
|
10 |
use C4::Context; |
11 |
|
12 |
use Test::More tests => 82; |
9 |
use Test::More tests => 82; |
|
|
10 |
use MARC::Record; |
11 |
|
12 |
use C4::Biblio qw( AddBiblio DelBiblio ); |
13 |
use C4::Context; |
13 |
|
14 |
|
14 |
# Getting some borrowers from database. |
15 |
# Getting some borrowers from database. |
15 |
my $dbh = C4::Context->dbh; |
16 |
my $dbh = C4::Context->dbh; |
16 |
my $query = qq/ |
17 |
my $query = q{ |
17 |
SELECT borrowernumber |
18 |
SELECT borrowernumber |
18 |
FROM borrowers |
19 |
FROM borrowers |
19 |
LIMIT 10 |
20 |
LIMIT 10 |
20 |
/; |
21 |
}; |
21 |
my $sth = $dbh->prepare($query); |
22 |
my $sth = $dbh->prepare($query); |
22 |
$sth->execute; |
23 |
$sth->execute; |
23 |
my @borrowers; |
24 |
my @borrowers; |
Lines 25-50
while(my $borrower = $sth->fetchrow){
Link Here
|
25 |
push @borrowers, $borrower; |
26 |
push @borrowers, $borrower; |
26 |
} |
27 |
} |
27 |
|
28 |
|
28 |
# Getting some biblionumbers from database |
29 |
# Creating some biblios |
29 |
$query = qq/ |
30 |
my ($biblionumber1, $biblioitemnumber1) = AddBiblio(MARC::Record->new, ''); |
30 |
SELECT biblionumber |
31 |
my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, ''); |
31 |
FROM biblio |
32 |
my ($biblionumber3, $biblioitemnumber3) = AddBiblio(MARC::Record->new, ''); |
32 |
LIMIT 10 |
33 |
my ($biblionumber4, $biblioitemnumber4) = AddBiblio(MARC::Record->new, ''); |
33 |
/; |
34 |
my ($biblionumber5, $biblioitemnumber5) = AddBiblio(MARC::Record->new, ''); |
34 |
$sth = $dbh->prepare($query); |
35 |
my ($biblionumber6, $biblioitemnumber6) = AddBiblio(MARC::Record->new, ''); |
35 |
$sth->execute; |
36 |
my ($biblionumber7, $biblioitemnumber7) = AddBiblio(MARC::Record->new, ''); |
36 |
my @biblionumbers; |
37 |
my ($biblionumber8, $biblioitemnumber8) = AddBiblio(MARC::Record->new, ''); |
37 |
while(my $biblionumber = $sth->fetchrow){ |
38 |
my ($biblionumber9, $biblioitemnumber9) = AddBiblio(MARC::Record->new, ''); |
38 |
push @biblionumbers, $biblionumber; |
39 |
my ($biblionumber10, $biblioitemnumber10) = AddBiblio(MARC::Record->new, ''); |
39 |
} |
40 |
my @biblionumbers = ( |
|
|
41 |
$biblionumber1, $biblionumber2, $biblionumber3, $biblionumber4, $biblionumber5, |
42 |
$biblionumber6, $biblionumber7, $biblionumber8, $biblionumber9, $biblionumber10, |
43 |
); |
40 |
|
44 |
|
41 |
# --- |
45 |
# --- |
42 |
my $delete_virtualshelf = qq/ |
46 |
my $delete_virtualshelf = q{ |
43 |
DELETE FROM virtualshelves WHERE 1 |
47 |
DELETE FROM virtualshelves WHERE 1 |
44 |
/; |
48 |
}; |
45 |
my $delete_virtualshelfcontent =qq/ |
49 |
my $delete_virtualshelfcontent = q{ |
46 |
DELETE FROM virtualshelfcontents WHERE 1 |
50 |
DELETE FROM virtualshelfcontents WHERE 1 |
47 |
/; |
51 |
}; |
48 |
|
52 |
|
49 |
$sth = $dbh->prepare($delete_virtualshelf); |
53 |
$sth = $dbh->prepare($delete_virtualshelf); |
50 |
$sth->execute; |
54 |
$sth->execute; |
Lines 67-73
use_ok('C4::VirtualShelves');
Link Here
|
67 |
my @shelves; |
71 |
my @shelves; |
68 |
for(my $i=0; $i<10;$i++){ |
72 |
for(my $i=0; $i<10;$i++){ |
69 |
my $ShelfNumber = AddShelf( |
73 |
my $ShelfNumber = AddShelf( |
70 |
{shelfname=>"Shelf_".$i, category=>int(rand(2))+1 }, $borrowers[$i] ); |
74 |
{shelfname=>"Shelf_".$i, category=>int(rand(2))+1 }, $borrowers[$i] ); |
71 |
die "test Not ok, remove some shelves before" if ($ShelfNumber == -1); |
75 |
die "test Not ok, remove some shelves before" if ($ShelfNumber == -1); |
72 |
ok($ShelfNumber > -1, "created shelf"); # Shelf creation successful; |
76 |
ok($ShelfNumber > -1, "created shelf"); # Shelf creation successful; |
73 |
push @shelves, $ShelfNumber if $ShelfNumber > -1; |
77 |
push @shelves, $ShelfNumber if $ShelfNumber > -1; |
Lines 79-85
ok(10 == scalar @shelves, 'created 10 lists'); # 10 shelves in @shelves;
Link Here
|
79 |
for(my $i=0;$i<10;$i++){ |
83 |
for(my $i=0;$i<10;$i++){ |
80 |
my @shlf=GetShelf($shelves[$i]); |
84 |
my @shlf=GetShelf($shelves[$i]); |
81 |
my $badNumShelf = AddShelf( |
85 |
my $badNumShelf = AddShelf( |
82 |
{shelfname=>"Shelf_".$i, category=>$shlf[3] }, $borrowers[$i]); |
86 |
{shelfname=>"Shelf_".$i, category=>$shlf[3] }, $borrowers[$i]); |
83 |
ok(-1 == $badNumShelf, 'do not create lists with duplicate names'); # AddShelf returns -1 if name already exist. |
87 |
ok(-1 == $badNumShelf, 'do not create lists with duplicate names'); # AddShelf returns -1 if name already exist. |
84 |
} |
88 |
} |
85 |
|
89 |
|
Lines 92-101
my %used = ();
Link Here
|
92 |
for(my $i=0; $i<10;$i++){ |
96 |
for(my $i=0; $i<10;$i++){ |
93 |
my $bib = $biblionumbers[int(rand(9))]; |
97 |
my $bib = $biblionumbers[int(rand(9))]; |
94 |
my $shelfnumber = $shelves[int(rand(9))]; |
98 |
my $shelfnumber = $shelves[int(rand(9))]; |
95 |
|
99 |
|
96 |
my $key = "$bib\t$shelfnumber"; |
100 |
my $key = "$bib\t$shelfnumber"; |
97 |
my $should_fail = exists($used{$key}) ? 1 : 0; |
101 |
my $should_fail = exists($used{$key}) ? 1 : 0; |
98 |
|
102 |
|
99 |
my ($biblistBefore,$countbefore) = GetShelfContents($shelfnumber); |
103 |
my ($biblistBefore,$countbefore) = GetShelfContents($shelfnumber); |
100 |
my $status = AddToShelf($bib,$shelfnumber,$borrowers[$i]); |
104 |
my $status = AddToShelf($bib,$shelfnumber,$borrowers[$i]); |
101 |
my ($biblistAfter,$countafter) = GetShelfContents($shelfnumber); |
105 |
my ($biblistAfter,$countafter) = GetShelfContents($shelfnumber); |
Lines 124-134
for(my $i=0; $i<10;$i++){
Link Here
|
124 |
my $rand = int(rand(9)); |
128 |
my $rand = int(rand(9)); |
125 |
my $numA = $shelves[$rand]; |
129 |
my $numA = $shelves[$rand]; |
126 |
my $shelf = { shelfname => "NewName_".$rand, |
130 |
my $shelf = { shelfname => "NewName_".$rand, |
127 |
category => int(rand(2))+1 }; |
131 |
category => int(rand(2))+1 }; |
128 |
|
132 |
|
129 |
ModShelf($numA,$shelf); |
133 |
ModShelf($numA,$shelf); |
130 |
my ($numB,$nameB,$ownerB,$categoryB) = GetShelf($numA); |
134 |
my ($numB,$nameB,$ownerB,$categoryB) = GetShelf($numA); |
131 |
|
135 |
|
132 |
ok($numA == $numB, 'modified shelf'); |
136 |
ok($numA == $numB, 'modified shelf'); |
133 |
ok($shelf->{shelfname} eq $nameB, '... and name change took'); |
137 |
ok($shelf->{shelfname} eq $nameB, '... and name change took'); |
134 |
ok($shelf->{category} eq $categoryB, '... and category change took'); |
138 |
ok($shelf->{category} eq $categoryB, '... and category change took'); |
Lines 142-144
for(my $i=0; $i<10;$i++){
Link Here
|
142 |
my $status = DelShelf($shelfnumber); |
146 |
my $status = DelShelf($shelfnumber); |
143 |
ok(1 == $status, "deleted shelf $shelfnumber and its contents"); |
147 |
ok(1 == $status, "deleted shelf $shelfnumber and its contents"); |
144 |
} |
148 |
} |
145 |
- |
149 |
|
|
|
150 |
END { |
151 |
DelBiblio( $biblionumber1 ); |
152 |
DelBiblio( $biblionumber2 ); |
153 |
DelBiblio( $biblionumber3 ); |
154 |
DelBiblio( $biblionumber4 ); |
155 |
DelBiblio( $biblionumber5 ); |
156 |
DelBiblio( $biblionumber6 ); |
157 |
DelBiblio( $biblionumber7 ); |
158 |
DelBiblio( $biblionumber8 ); |
159 |
DelBiblio( $biblionumber9 ); |
160 |
DelBiblio( $biblionumber10 ); |
161 |
}; |