3 # Copyright 2013 Equinox Software, Inc.
5 # This file is part of Koha.
7 # Koha is free software; you can redistribute it and/or modify it under the
8 # terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 3 of the License, or (at your option) any later
12 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License along
17 # with Koha; if not, see <http://www.gnu.org/licenses>.
24 use Test::More tests => 16;
30 use Koha::LibraryCategories;
34 use lib $FindBin::Bin;
44 my $schema = Koha::Database->new->schema;
45 $schema->storage->txn_begin;
47 my $dbh = C4::Context->dbh;
50 $dbh->do('DELETE FROM branchcategories');
54 my $count = Koha::Libraries->search->count;
55 like( $count, '/^\d+$/', "the count is a number" );
60 branchname => 'BranchA',
61 branchaddress1 => 'adr1A',
62 branchaddress2 => 'adr2A',
63 branchaddress3 => 'adr3A',
65 branchcity => 'cityA',
66 branchstate => 'stateA',
67 branchcountry => 'countryA',
68 branchphone => 'phoneA',
70 branchemail => 'emailA',
71 branchreplyto => 'emailreply',
72 branchreturnpath => 'branchreturn',
75 branchprinter => undef,
76 branchnotes => 'noteA',
82 branchname => 'BranchB',
83 branchaddress1 => 'adr1B',
84 branchaddress2 => 'adr2B',
85 branchaddress3 => 'adr3B',
87 branchcity => 'cityB',
88 branchstate => 'stateB',
89 branchcountry => 'countryB',
90 branchphone => 'phoneB',
92 branchemail => 'emailB',
93 branchreplyto => 'emailreply',
94 branchreturnpath => 'branchreturn',
97 branchprinter => undef,
98 branchnotes => 'noteB',
102 Koha::Library->new($b1)->store;
103 Koha::Library->new($b2)->store;
105 is( Koha::Libraries->search->count, $count + 2, "two branches added" );
107 is( Koha::Libraries->find( $b2->{branchcode} )->delete, 1, "One row affected" );
108 is( Koha::Libraries->search->count, $count + 1, "branch BRB deleted" );
111 my $branches = GetBranches();
112 is( scalar( keys %$branches ),
113 Koha::Libraries->search->count, "GetBranches returns the right number of branches" );
115 #Test modify a library
119 branchname => 'BranchA modified',
120 branchaddress1 => 'adr1A modified',
121 branchaddress2 => 'adr2A modified',
122 branchaddress3 => 'adr3A modified',
123 branchzip => 'zipA modified',
124 branchcity => 'cityA modified',
125 branchstate => 'stateA modified',
126 branchcountry => 'countryA modified',
127 branchphone => 'phoneA modified',
128 branchfax => 'faxA modified',
129 branchemail => 'emailA modified',
130 branchreplyto => 'emailreply modified',
131 branchreturnpath => 'branchreturn modified',
132 branchurl => 'urlA modified',
133 branchip => 'ipA modified',
134 branchprinter => undef,
135 branchnotes => 'notesA modified',
136 opac_info => 'opacA modified',
140 Koha::Libraries->find($b1->{branchcode})->set($b1)->store;
141 is( Koha::Libraries->search->count, $count + 1,
142 "A branch has been modified, no new branch added" );
145 my $count_cat = Koha::LibraryCategories->search->count;
148 categorycode => 'CAT1',
149 categoryname => 'catname1',
150 codedescription => 'catdesc1',
151 categorytype => 'cattype1',
152 show_in_pulldown => 1
155 categorycode => 'CAT2',
156 categoryname => 'catname2',
157 categorytype => 'catype2',
158 codedescription => 'catdesc2',
159 show_in_pulldown => 1
163 categorycode => 'LIBCATCODE',
164 categoryname => 'library category name',
165 codedescription => 'library category code description',
166 categorytype => 'searchdomain',
167 show_in_pulldown => 1,
170 Koha::LibraryCategory->new(\%new_category)->store;
171 Koha::LibraryCategory->new($cat1)->store;
172 Koha::LibraryCategory->new($cat2)->store;
174 my $categories = Koha::LibraryCategories->search;
175 is( $categories->count, $count_cat + 3, "Two categories added" );
177 my $del = Koha::LibraryCategories->find( $cat2->{categorycode} )->delete;
178 is( $del, 1, 'One row affected' );
180 is( Koha::LibraryCategories->search->count, $count_cat + 2, "Category CAT 2 deleted" );
182 my $b2_stored = Koha::Library->new($b2)->store;
183 my $CAT1 = Koha::LibraryCategories->find('CAT1');
184 $b2_stored->add_to_categories([$CAT1]);
185 is( Koha::Libraries->search->count, $count + 2, 'BRB added' );
187 my $b1info = Koha::Libraries->find( $b1->{branchcode} );
188 is_deeply( $b1info->get_categories->count, 0, 'BRA has no categories' );
190 my $b2info = Koha::Libraries->find( $b2->{branchcode} );
191 is_deeply( $b2info->get_categories->count, 1, 'BRB has the category CAT1' );
193 Koha::LibraryCategory->new($cat2)->store;
194 is( Koha::LibraryCategories->search->count, $count_cat + 3, "Two categories added" );
196 $schema->storage->txn_rollback;