use strict; use warnings; use Test::More no_plan => 1; use Test::Group; use Module::Build; my $build = Module::Build->current; my $key = $build->args('key'); if (! $key) { skip_next_tests 4, 'An API key is required for the extended tests. Please get one at http://isbndb.com/account/dev/keys/'; } my ($search); test 'Modules used ok' => sub { use_ok( 'WWW::Search' ); use_ok( 'WWW::Search::ISBNDB' ); }; test 'Object creation' => sub { $search = WWW::Search->new('ISBNDB', 'key' => $key); ok($search, 'WWW::Search::ISBNDB object created -- good '); isa_ok($search, 'WWW::Search::ISBNDB', 'WWW::Search::ISBNDB object ref match -- good '); }; test 'valid query test' => sub { $search->native_query('Born in blood'); my $result = $search->next_result; ok($result, 'got the first result -- good '); isa_ok($result, 'WWW::SearchResult', 'WWW::SearchResult object ref match'); is($result->{'language'}, 'eng', 'language matches -- good'); is($result->title, 'Born in blood', 'title match'); is($result->{'titlelong'}, 'Born in blood: the lost secrets of freemasonry', 'long title match'); is($result->{'isbn'}, '0871316021', 'isbn match -- good') }; test 'invalid query test' => sub { $search->native_query('isbn test ' . time ); my $result = $search->next_result; ok(! $result, 'Found nothing due to an invalid test -- good'); };