use Test::More;
BEGIN {
if ($ENV{GUARDIAN_API_KEY}) {
plan tests => 29;
} else {
plan skip_all => 'Please set environment variable GUARDIAN_API_KEY';
}
use_ok('Guardian::OpenPlatform::API');
}
ok(my $client = Guardian::OpenPlatform::API->new(
api_key => $ENV{GUARDIAN_API_KEY},
), 'Got client');
isa_ok($client, 'Guardian::OpenPlatform::API');
is($client->format, 'json', 'Default format correct');
isa_ok($client->ua, 'LWP::UserAgent');
is($client->api_key, $ENV{GUARDIAN_API_KEY}, 'API key correct');
eval { $client->content({
qry => 'environment',
mode => 'not a mode',
}); };
ok($@, 'Throws an exception');
like($@, qr/Invalid mode/, 'Throws the right exception');
my $resp = $client->content({
qry => 'environment',
});
ok($resp, 'Got a response');
isa_ok($resp, 'HTTP::Response');
like($resp->header('Content-type'), qr/json/, 'Correct type - json');
$resp = $client->content({
qry => 'environment',
format => 'xml',
});
ok($resp, 'Got a response');
isa_ok($resp, 'HTTP::Response');
like($resp->header('Content-type'), qr/xml/, 'Correct type - xml');
$resp = $client->content({
mode => 'tags',
});
ok($resp, 'Got a response');
isa_ok($resp, 'HTTP::Response');
like($resp->header('Content-type'), qr/json/, 'Correct type - json');
$resp = $client->content({
mode => 'search',
qry => 'environment',
filter => '/society',
});
ok($resp, 'Got a response');
isa_ok($resp, 'HTTP::Response');
like($resp->header('Content-type'), qr/json/, 'Correct type - json');
$resp = $client->content({
mode => 'search',
qry => 'environment',
filter => ['/society', '/global/comment' ],
});
ok($resp, 'Got a response');
isa_ok($resp, 'HTTP::Response');
like($resp->header('Content-type'), qr/json/, 'Correct type - json');
$resp = $client->content({
mode => 'tags',
qry => 'environment',
});
ok($resp, 'Got a response');
isa_ok($resp, 'HTTP::Response');
like($resp->header('Content-type'), qr/json/, 'Correct type - json');
$resp = $client->content({
mode => 'tags',
format => 'xml',
qry => 'environment',
});
ok($resp, 'Got a response');
isa_ok($resp, 'HTTP::Response');
like($resp->header('Content-type'), qr/xml/, 'Correct type - xml');