BEGIN {push(@INC, 't/lib')}
use Test::More tests => 1;
use POE::Component::Client::REST::Test::HTTP qw(json_responder);
my $tester = POE::Component::Client::REST::Test::HTTP->new(
responses => [
qr{^/_all_dbs$} => json_responder([qw(foo bar baz)]),
],
);
use POE::Component::Client::REST::JSON;
use POE;
# simple CouchDB example
POE::Session->create(inline_states => {
_start => sub {
$poe_kernel->alias_set('foo');
my $rest = $_[HEAP]->{rest} = POE::Component::Client::REST::JSON->new;
$tester->replace($rest);
$rest->call(GET => 'http://localhost:5984/_all_dbs', callback =>
[$_[SESSION], 'response']);
},
response => sub {
my ($data, $response) = @_[ARG0, ARG1];
die $response->status_line unless $response->code == 200;
# print 'Databases: ' . join(', ', @$data) . "\n";
$poe_kernel->alias_remove('foo');
$_[HEAP]->{rest}->shutdown();
ok($data->[0] eq 'foo' && $data->[1] eq 'bar' && $data->[2] eq 'baz',
"Correct output");
},
});
$poe_kernel->run();