Lines 4-22
Link Here
|
4 |
# It requires a working Koha database with the sample data |
4 |
# It requires a working Koha database with the sample data |
5 |
|
5 |
|
6 |
use Modern::Perl; |
6 |
use Modern::Perl; |
7 |
use DateTime::Format::MySQL; |
7 |
use Test::More tests => 5; |
8 |
use Test::More tests => 6; |
|
|
9 |
|
8 |
|
10 |
use t::lib::TestBuilder; |
9 |
use t::lib::TestBuilder; |
11 |
|
10 |
|
12 |
use C4::Context; |
11 |
use C4::Context; |
13 |
use Koha::Database; |
12 |
use Koha::Database; |
14 |
use Koha::DateUtils qw(dt_from_string); |
|
|
15 |
use Koha::AuthorisedValue; |
13 |
use Koha::AuthorisedValue; |
16 |
use Koha::AuthorisedValueCategories; |
14 |
use Koha::AuthorisedValueCategories; |
17 |
|
15 |
|
18 |
BEGIN { |
16 |
BEGIN { |
19 |
use_ok('C4::Koha', qw( :DEFAULT GetDailyQuote GetItemTypesCategorized)); |
17 |
use_ok('C4::Koha', qw( :DEFAULT GetItemTypesCategorized)); |
20 |
use_ok('C4::Members'); |
18 |
use_ok('C4::Members'); |
21 |
} |
19 |
} |
22 |
|
20 |
|
Lines 157-219
subtest 'Authorized Values Tests' => sub {
Link Here
|
157 |
|
155 |
|
158 |
}; |
156 |
}; |
159 |
|
157 |
|
160 |
### test for C4::Koha->GetDailyQuote() |
|
|
161 |
SKIP: |
162 |
{ |
163 |
eval { require Test::Deep; import Test::Deep; }; |
164 |
skip "Test::Deep required to run the GetDailyQuote tests.", 1 if $@; |
165 |
|
166 |
subtest 'Daily Quotes Test' => sub { |
167 |
plan tests => 4; |
168 |
|
169 |
SKIP: { |
170 |
|
171 |
skip "C4::Koha can't \'GetDailyQuote\'!", 3 unless can_ok('C4::Koha','GetDailyQuote'); |
172 |
|
173 |
# Fill the quote table with the default needed and a spare |
174 |
$dbh->do("DELETE FROM quotes WHERE id=3 OR id=25;"); |
175 |
my $sql = "INSERT INTO quotes (id,source,text,timestamp) VALUES |
176 |
(25,'Richard Nixon','When the President does it, that means that it is not illegal.',NOW()), |
177 |
(3,'Abraham Lincoln','Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.',NOW());"; |
178 |
$dbh->do($sql); |
179 |
|
180 |
my $expected_quote = { |
181 |
id => 3, |
182 |
source => 'Abraham Lincoln', |
183 |
text => 'Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal.', |
184 |
timestamp => re('\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}'), #'YYYY-MM-DD HH:MM:SS' |
185 |
}; |
186 |
|
187 |
# test quote retrieval based on id |
188 |
|
189 |
my $quote = GetDailyQuote('id'=>3); |
190 |
cmp_deeply ($quote, $expected_quote, "Got a quote based on id.") or |
191 |
diag('Be sure to run this test on a clean install of sample data.'); |
192 |
|
193 |
# test quote retrieval based on today's date |
194 |
|
195 |
my $query = 'UPDATE quotes SET timestamp = ? WHERE id = ?'; |
196 |
my $sth = C4::Context->dbh->prepare($query); |
197 |
$sth->execute(DateTime::Format::MySQL->format_datetime( dt_from_string() ), $expected_quote->{'id'}); |
198 |
|
199 |
DateTime::Format::MySQL->format_datetime( dt_from_string() ) =~ m/(\d{4}-\d{2}-\d{2})/; |
200 |
$expected_quote->{'timestamp'} = re("^$1"); |
201 |
|
202 |
# $expected_quote->{'timestamp'} = DateTime::Format::MySQL->format_datetime( dt_from_string() ); # update the timestamp of expected quote data |
203 |
|
204 |
$quote = GetDailyQuote(); # this is the "default" mode of selection |
205 |
cmp_deeply ($quote, $expected_quote, "Got a quote based on today's date.") or |
206 |
diag('Be sure to run this test on a clean install of sample data.'); |
207 |
|
208 |
# test random quote retrieval |
209 |
|
210 |
$quote = GetDailyQuote('random'=>1); |
211 |
ok ($quote, "Got a random quote."); |
212 |
} |
213 |
}; |
214 |
} |
215 |
|
216 |
|
217 |
subtest 'ISBN tests' => sub { |
158 |
subtest 'ISBN tests' => sub { |
218 |
plan tests => 6; |
159 |
plan tests => 6; |
219 |
|
160 |
|
220 |
- |
|
|