Blitz
view release on metacpan or search on metacpan
t/blitzexecute.t view on Meta::CPAN
response => {
line => 'GET / HTTP/1.1',
message => 'message',
status => 200,
headers => {},
content => $content,
},
},
};
my $status_success_json = encode_json($status);
my $client = $blitz->get_client;
sub _mock_server_response {
my $method = shift;
my $json = shift;
my $lwp = Test::MockObject->new();
$lwp->fake_module( 'LWP::UserAgent'=> (
new => sub { $lwp },
));
$lwp->mock( $method => sub {
my $response = HTTP::Response->new;
$response->code(200);
$response->content($json);
return $response;
});
return $lwp;
}
# start_job success
{
my $lwp = _mock_server_response('post', $start_job_success_json);
my $response = $client->start_job({});
ok($response->{ok}, 'execute response ok');
ok(!$response->{error}, 'no error on success');
is($response->{job_id}, $start_job_success->{job_id}, 'id is returned correctly');
}
# start_job error
{
my $lwp = _mock_server_response('post', $start_job_error_json);
my $response = $client->start_job({});
ok($response->{error}, 'start_job response correctly reports error');
ok(!$response->{ok}, 'no ok on error');
is($response->{reason}, $start_job_error->{reason}, 'error reason returned correctly');
}
# job status success
{
my $lwp = _mock_server_response('get', $status_success_json);
my $job_id = $client->job_id($status->{_id});
my $response = $client->job_status();
ok(!$response->{error}, 'job_status responds without error');
ok($response->{ok}, 'no error on success');
is($response->{_id}, $status->{_id}, 'job id returns correctly');
is($response->{result}{request}{content}, 'content', 'request content was base64 encoded and decoded');
is($response->{result}{response}{content}, 'content', 'response content was base64 encoded and decoded');
}
# integer test
{
my $lwp = _mock_server_response('post', $integer_test_json);
my $response = $client->start_job($integer_test);
is_deeply($response, $integer_test, 'response and json are identical');
}
( run in 0.710 second using v1.01-cache-2.11-cpan-39bf76dae61 )