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

(-)a/t/db_dependent/Branch.t (-8 / +290 lines)
Lines 21-27 use Modern::Perl; Link Here
21
use C4::Context;
21
use C4::Context;
22
use Data::Dumper;
22
use Data::Dumper;
23
23
24
use Test::More tests => 6;
24
use Test::More tests => 36;
25
25
26
use C4::Branch;
26
use C4::Branch;
27
27
Lines 30-35 BEGIN { Link Here
30
    use lib $FindBin::Bin;
30
    use lib $FindBin::Bin;
31
    use_ok('C4::Branch');
31
    use_ok('C4::Branch');
32
}
32
}
33
can_ok(
34
    'C4::Branch', qw(
35
      GetBranchCategory
36
      GetBranchName
37
      GetBranch
38
      GetBranches
39
      GetBranchesLoop
40
      GetBranchDetail
41
      get_branchinfos_of
42
      ModBranch
43
      CheckBranchCategorycode
44
      GetBranchInfo
45
      GetCategoryTypes
46
      GetBranchCategories
47
      GetBranchesInCategory
48
      ModBranchCategoryInfo
49
      DelBranch
50
      DelBranchCategory
51
      CheckCategoryUnique
52
      mybranch
53
      GetBranchesCount)
54
);
55
33
56
34
# Start transaction
57
# Start transaction
35
my $dbh = C4::Context->dbh;
58
my $dbh = C4::Context->dbh;
Lines 39-46 $dbh->{RaiseError} = 1; Link Here
39
# clear the slate
62
# clear the slate
40
$dbh->do('DELETE FROM branchcategories');
63
$dbh->do('DELETE FROM branchcategories');
41
64
42
my @category_types = GetCategoryTypes();
65
# Start test
43
is_deeply(\@category_types, [ 'searchdomain', 'properties' ], 'received expected library category types');
66
67
my $count = GetBranchesCount;
68
like( $count, '/^\d+$/', "the count is a number" );
69
70
#add 2 branches
71
my $b1 = {
72
    add            => 1,
73
    branchcode     => 'BRA',
74
    branchname     => 'BranchA',
75
    branchaddress1 => 'adr1A',
76
    branchaddress2 => 'adr2A',
77
    branchaddress3 => 'adr3A',
78
    branchzip      => 'zipA',
79
    branchcity     => 'cityA',
80
    branchstate    => 'stateA',
81
    branchcountry  => 'countryA',
82
    branchphone    => 'phoneA',
83
    branchfax      => 'faxA',
84
    branchemail    => 'emailA',
85
    branchurl      => 'urlA',
86
    branchip       => 'ipA',
87
    branchprinter  => undef,
88
    branchnotes    => 'noteA',
89
    opac_info      => 'opacA'
90
};
91
my $b2 = {
92
    branchcode     => 'BRB',
93
    branchname     => 'BranchB',
94
    branchaddress1 => 'adr1B',
95
    branchaddress2 => 'adr2B',
96
    branchaddress3 => 'adr3B',
97
    branchzip      => 'zipB',
98
    branchcity     => 'cityB',
99
    branchstate    => 'stateB',
100
    branchcountry  => 'countryB',
101
    branchphone    => 'phoneB',
102
    branchfax      => 'faxB',
103
    branchemail    => 'emailB',
104
    branchurl      => 'urlB',
105
    branchip       => 'ipB',
106
    branchprinter  => undef,
107
    branchnotes    => 'noteB',
108
    opac_info      => 'opacB',
109
};
110
ModBranch($b1);
111
is( ModBranch($b2), undef, 'the field add is missing' );
112
113
$b2->{add} = 1;
114
ModBranch($b2);
115
is( GetBranchesCount, $count + 2, "two branches added" );
116
117
#Test DelBranch
118
119
is( DelBranch( $b2->{branchcode} ), 1,          "One row affected" );
120
is( GetBranchesCount,               $count + 1, "branch BRB deleted" );
121
122
#Test GetBranchName
123
is( GetBranchName( $b1->{branchcode} ),
124
    $b1->{branchname}, "GetBranchName returns the right name" );
125
126
#Test GetBranchDetail
127
my $branchdetail = GetBranchDetail( $b1->{branchcode} );
128
$branchdetail->{add} = 1;
129
$b1->{issuing}       = undef;    # Not used in DB
130
is_deeply( $branchdetail, $b1, 'branchdetail is right' );
131
132
#Test Getbranches
133
my $branches = GetBranches;
134
is( scalar( keys %$branches ),
135
    GetBranchesCount, "GetBranches returns the right number of branches" );
136
137
#Test ModBranch
138
139
$b1 = {
140
    branchcode     => 'BRA',
141
    branchname     => 'BranchA modified',
142
    branchaddress1 => 'adr1A modified',
143
    branchaddress2 => 'adr2A modified',
144
    branchaddress3 => 'adr3A modified',
145
    branchzip      => 'zipA modified',
146
    branchcity     => 'cityA modified',
147
    branchstate    => 'stateA modified',
148
    branchcountry  => 'countryA modified',
149
    branchphone    => 'phoneA modified',
150
    branchfax      => 'faxA modified',
151
    branchemail    => 'emailA modified',
152
    branchurl      => 'urlA modified',
153
    branchip       => 'ipA modified',
154
    branchprinter  => undef,
155
    branchnotes    => 'notesA modified',
156
    opac_info      => 'opacA modified'
157
};
158
159
ModBranch($b1);
160
is( GetBranchesCount, $count + 1,
161
    "A branch has been modified, no new branch added" );
162
$branchdetail = GetBranchDetail( $b1->{branchcode} );
163
$b1->{issuing} = undef;
164
is_deeply( $branchdetail, $b1 , "GetBranchDetail gives the details of BRA");
165
166
#Test categories
167
my $categories = GetBranchCategories;
168
my $count_cat  = scalar( keys $categories );
169
170
my $cat1 = {
171
    add              => 1,
172
    categorycode     => 'CAT1',
173
    categoryname     => 'catname1',
174
    codedescription  => 'catdesc1',
175
    categorytype     => 'cattype1',
176
    show_in_pulldown => 1
177
};
178
my $cat2 = {
179
    add              => 1,
180
    categorycode     => 'CAT2',
181
    categoryname     => 'catname2',
182
    categorytype     => 'catype2',
183
    codedescription  => 'catdesc2',
184
    show_in_pulldown => 1
185
};
44
186
45
my %new_category = (
187
my %new_category = (
46
    categorycode     => 'LIBCATCODE',
188
    categorycode     => 'LIBCATCODE',
Lines 49-69 my %new_category = ( Link Here
49
    categorytype     => 'searchdomain',
191
    categorytype     => 'searchdomain',
50
    show_in_pulldown => 1,
192
    show_in_pulldown => 1,
51
);
193
);
194
52
ModBranchCategoryInfo({
195
ModBranchCategoryInfo({
53
    add => 1,
196
    add => 1,
54
    %new_category,
197
    %new_category,
55
});
198
});
56
199
200
ModBranchCategoryInfo($cat1);
201
ModBranchCategoryInfo($cat2);
202
203
$categories = GetBranchCategories;
204
is( scalar( keys $categories ), $count_cat + 3, "Two categories added" );
205
delete $cat1->{add};
206
delete $cat2->{add};
207
delete %new_category->{add};
208
is_deeply($categories, [ $cat1,$cat2,\%new_category ], 'retrieve all expected library categories (bug 10515)');
209
210
#test GetBranchCategory
211
my $cat1detail = GetBranchCategory( $cat1->{categorycode} );
212
delete $cat1->{add};
213
is_deeply( $cat1detail, $cat1, 'CAT1 details are right' );
57
my $category = GetBranchCategory('LIBCATCODE');
214
my $category = GetBranchCategory('LIBCATCODE');
58
is_deeply($category, \%new_category, 'fetched newly added library category');
215
is_deeply($category, \%new_category, 'fetched newly added library category');
59
216
217
#Test DelBranchCategory
218
my $del = DelBranchCategory( $cat2->{categorycode} );
219
is( $del, 1, 'One row affected' );
220
221
$categories = GetBranchCategories;
222
is( scalar( keys $categories ), $count_cat + 2, "Category  CAT2 deleted" );
223
224
my $cat2detail = GetBranchCategory( $cat2->{categorycode} );
225
is( $cat2detail, undef, 'CAT2 doesnt exist' );
226
60
$category = GetBranchCategory();
227
$category = GetBranchCategory();
61
is($category, undef, 'retrieve library category only if code is supplied (bug 10515)');
228
is($category, undef, 'retrieve library category only if code is supplied (bug 10515)');
62
229
63
my $categories = GetBranchCategories();
230
#Test CheckBranchCategoryCode
64
is_deeply($categories, [ \%new_category ], 'retrieve all expected library categories (bug 10515)');
231
my $check1 = CheckBranchCategorycode( $cat1->{categorycode} );
232
my $check2 = CheckBranchCategorycode( $cat2->{categorycode} );
233
like( $check1, '/^\d+$/', "CheckBranchCategorycode returns a number" );
234
235
$b2->{CAT1} = 1;
236
ModBranch($b2);
237
is( GetBranchesCount, $count + 2, 'BRB added' );
238
is(
239
    CheckBranchCategorycode( $cat1->{categorycode} ),
240
    $check1 + 1,
241
    'BRB added to CAT1'
242
);
243
244
#Test GetBranchInfo
245
my $b1info = GetBranchInfo( $b1->{branchcode} );
246
$b1->{categories} = [];
247
is_deeply( @$b1info[0], $b1, 'BRA has no categories' );
248
249
my $b2info = GetBranchInfo( $b2->{branchcode} );
250
my @cat    = ( $cat1->{categorycode} );
251
delete $b2->{add};
252
delete $b2->{CAT1};
253
$b2->{issuing}    = undef;
254
$b2->{categories} = \@cat;
255
is_deeply( @$b2info[0], $b2, 'BRB has the category CAT1' );
256
257
ModBranchCategoryInfo({add => 1,%$cat2});
258
$categories = GetBranchCategories;
259
is( scalar( keys $categories ), $count_cat + 3, "Two categories added" );
260
$b2 = {
261
    branchcode     => 'BRB',
262
    branchname     => 'BranchB',
263
    branchaddress1 => 'adr1B',
264
    branchaddress2 => 'adr2B',
265
    branchaddress3 => 'adr3B',
266
    branchzip      => 'zipB',
267
    branchcity     => 'cityB',
268
    branchstate    => 'stateB',
269
    branchcountry  => 'countryB',
270
    branchphone    => 'phoneB',
271
    branchfax      => 'faxB',
272
    branchemail    => 'emailB',
273
    branchurl      => 'urlB',
274
    branchip       => 'ipB',
275
    branchprinter  => undef,
276
    branchnotes    => 'noteB',
277
    opac_info      => 'opacB',
278
    CAT1           => 1,
279
    CAT2           => 1
280
};
281
ModBranch($b2);
282
$b2info = GetBranchInfo( $b2->{branchcode} );
283
is(
284
    CheckBranchCategorycode( $cat2->{categorycode} ),
285
    $check2 + 1,
286
    'BRB added to CAT2'
287
);
288
push( @cat, $cat2->{categorycode} );
289
delete $b2->{CAT1};
290
delete $b2->{CAT2};
291
$b2->{issuing}    = undef;
292
$b2->{categories} = \@cat;
293
is_deeply( @$b2info[0], $b2, 'BRB has the category CAT1 and CAT2' );
294
295
#Test GetBranchesInCategory
296
my $brCat1 = GetBranchesInCategory( $cat1->{categorycode} );
297
my @b      = ( $b2->{branchcode} );
298
is_deeply( $brCat1, \@b, 'CAT1 has branch BRB' );
299
300
my $b3 = {
301
    add            => 1,
302
    branchcode     => 'BRC',
303
    branchname     => 'BranchC',
304
    branchaddress1 => 'adr1C',
305
    branchaddress2 => 'adr2C',
306
    branchaddress3 => 'adr3C',
307
    branchzip      => 'zipC',
308
    branchcity     => 'cityC',
309
    branchstate    => 'stateC',
310
    branchcountry  => 'countryC',
311
    branchphone    => 'phoneC',
312
    branchfax      => 'faxC',
313
    branchemail    => 'emailC',
314
    branchurl      => 'urlC',
315
    branchip       => 'ipC',
316
    branchprinter  => undef,
317
    branchnotes    => 'noteC',
318
    opac_info      => 'opacC',
319
    CAT1           => 1,
320
    CAT2           => 1
321
};
322
ModBranch($b3);
323
$brCat1 = GetBranchesInCategory( $cat1->{categorycode} );
324
push( @b, $b3->{branchcode} );
325
is_deeply( $brCat1, \@b, 'CAT1 has branch BRB and BRC' );
326
is(
327
    CheckBranchCategorycode( $cat1->{categorycode} ),
328
    $check1 + 2,
329
    'BRC has been added to CAT1'
330
);
331
332
#Test CheckCategoryUnique
333
is( CheckCategoryUnique('CAT2'),          0, 'CAT2 exists' );
334
is( CheckCategoryUnique('CAT_NO_EXISTS'), 1, 'CAT_NO_EXISTS doesnt exist' );
335
336
#Test GetCategoryTypes
337
my @category_types = GetCategoryTypes();
338
is_deeply(\@category_types, [ 'searchdomain', 'properties' ], 'received expected library category types');
65
339
66
$categories = GetBranchCategories(undef, undef, 'LIBCATCODE');
340
$categories = GetBranchCategories(undef, undef, 'LIBCATCODE');
67
is_deeply($categories, [ { %new_category, selected => 1 } ], 'retrieve expected, eselected library category (bug 10515)');
341
is_deeply($categories, [ {%$cat1}, {%$cat2},{ %new_category, selected => 1 } ], 'retrieve expected, eselected library category (bug 10515)');
342
343
#TODO later: test mybranchine and onlymine
344
# Actually we cannot mock C4::Context->userenv in unit tests
345
346
#Test GetBranchesLoop
347
my $loop = GetBranchesLoop;
348
is( scalar(@$loop), GetBranchesCount, 'There is the right number of branches' );
349
350
# End transaction
351
$dbh->rollback;
68
352
69
$dbh->rollback();
70
- 

Return to bug 10508