};
if ($self->response_is_future) {
- $response->transform(
+ $response = $response->transform(
done => $handle_response,
fail => $handle_response,
);
};
if ($self->response_is_future) {
- $resp->transform(
+ $resp = $resp->transform(
done => $handle_response,
fail => $handle_response,
);
use lib 't/lib';
+use Future;
use HTTP::AnyUA;
-use Test::More tests => 1;
+use Test::More tests => 2;
HTTP::AnyUA->register_backend(Mock => '+MockBackend');
$any_ua->apply_middleware('Runtime');
my $url = 'http://acme.tld/';
-
+my $mock_response = {
+ success => 1,
+ status => 200,
+ reason => 'OK',
+ content => 'whatever',
+};
+
+$backend->response({%$mock_response});
my $resp = $any_ua->get($url);
note explain $resp;
isnt $resp->{runtime}, undef, 'runtime is defined';
+$backend->response(Future->done({%$mock_response}));
+$resp = $any_ua->get($url);
+$resp->on_done(sub {
+ my $resp = shift;
+ note explain $resp;
+ isnt $resp->{runtime}, undef, 'runtime is defined when response is future';
+});
+
use warnings;
use strict;
+use Scalar::Util qw(blessed);
+use namespace::clean;
+
use parent 'HTTP::AnyUA::Backend';
sub requests { @{$_[0]->{requests} || []} }
+sub response_is_future { blessed($_[0]->{response}) && $_[0]->{response}->isa('Future') }
+
sub request {
my $self = shift;