# NAME
Test::RestAPI - Real mock of REST API
# SYNOPSIS
my $api = Test::RestAPI->new(
endpoints => [
Test::RestAPI::Endpoint->new(
endpoint => '/a',
method => 'any',
)
],
);
$api->start();
HTTP::Tiny->new->get($api->uri.'/test');
# DESCRIPTION
In many (test) case you need mock some REST API. One way is mock your REST-API class abstraction or HTTP client.
This module provides other way - start generated [Mojolicious](
https://metacpan.org/pod/Mojolicious) server and provides pseudo-real your defined API.
# METHODS
## new(%attribute)
### %attribute
#### endpoints
_ArrayRef_ of instances [Test::RestAPI::Endpoint](
https://metacpan.org/pod/Test::RestAPI::Endpoint)
default is _/_ (root) 200 OK - hello:
Test::RestAPI::Endpoint->new(
endpoint => '/',
method => 'any',
body => 'Hello',
);
#### mojo\_app\_generator
This attribute is used for generating mojo application.
default is [Test::RestAPI::MojoGenerator](
https://metacpan.org/pod/Test::RestAPI::MojoGenerator)
### start
Start REST API ([Mojolicious](
https://metacpan.org/pod/Mojolicious)) application on some random unused port
and wait to initialize.
For start new process is used `fork-exec` on non-windows machines and [Win32::Process](
https://metacpan.org/pod/Win32::Process) for windows machines.
For generating [Mojolicious](
https://metacpan.org/pod/Mojolicious) application is used [Test::RestAPI::MojoGenerator](
https://metacpan.org/pod/Test::RestAPI::MojoGenerator) in `mojo_app_generator` attribute - is possible set own generator.
## count\_of\_requests($path)
return count of request to `$path` endpoint
## list\_of\_requests\_body($path)
return list (ArrayRef) of requests body to `$path` endpoint
# LICENSE
Copyright (C) Avast Software.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
# AUTHOR
Jan Seidl <
[email protected]>