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 )