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

(-)a/t/db_dependent/VirtualShelves.t (-30 / +46 lines)
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
};

Return to bug 10290