Split tests into unit and integration test suites
This commit is contained in:
parent
812012bdbf
commit
1a5712a417
|
|
@ -1,3 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4" />
|
||||
|
||||
<project version="4">
|
||||
<component name="PhpUnit">
|
||||
<phpunit_settings>
|
||||
<PhpUnitSettings load_method="CUSTOM_LOADER" configuration_file_path="$PROJECT_DIR$/phpunit.xml.dist" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="$PROJECT_DIR$/vendor/bin/phpunit" use_configuration_file="true" />
|
||||
</phpunit_settings>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -20,8 +20,11 @@
|
|||
<env name="FAIL_PORT" value="9001-9100" />
|
||||
</php>
|
||||
<testsuites>
|
||||
<testsuite name="WellRESTed Test Suite">
|
||||
<directory>./test/</directory>
|
||||
<testsuite name="unit">
|
||||
<directory>./test/tests/unit/</directory>
|
||||
</testsuite>
|
||||
<testsuite name="integration">
|
||||
<directory>./test/tests/integration/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<filter>
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ class Router implements HandlerInterface
|
|||
public function getResponse(RequestInterface $request, array $args = null)
|
||||
{
|
||||
$response = $this->tryResponse($this->routeTable, $request, $args);
|
||||
if ($response) {
|
||||
if ($response && $response instanceof ResponseInterface) {
|
||||
// Check if the router has an error handler for this status code.
|
||||
$status = $response->getStatusCode();
|
||||
$errorResponse = $this->getErrorResponse($status, $request, $args, $response);
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
<?php
|
||||
|
||||
use pjdietz\WellRESTed\Interfaces\HandlerInterface;
|
||||
use pjdietz\WellRESTed\Response;
|
||||
|
||||
/**
|
||||
* Mini Handler class that allways returns a 200 status code Response.
|
||||
*/
|
||||
class MockHandler implements HandlerInterface
|
||||
{
|
||||
public function getResponse(\pjdietz\WellRESTed\Interfaces\RequestInterface $request, array $args = null)
|
||||
{
|
||||
$resp = new Response();
|
||||
$resp->setStatusCode(200);
|
||||
return $resp;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
|
||||
namespace pjdietz\WellRESTed\Test\Integration;
|
||||
|
||||
use pjdietz\WellRESTed\Router;
|
||||
use Prophecy\Argument;
|
||||
|
||||
class RouterTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
private $request;
|
||||
private $response;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->request = $this->prophesize("\\pjdietz\\WellRESTed\\Interfaces\\RequestInterface");
|
||||
$this->request->getPath()->willReturn("/");
|
||||
$this->request->getMethod()->willReturn("GET");
|
||||
$this->response = $this->prophesize("\\pjdietz\\WellRESTed\\Interfaces\\ResponseInterface");
|
||||
$this->response->getStatusCode()->willReturn(200);
|
||||
$this->response->getBody()->willReturn("Hello, world!");
|
||||
}
|
||||
|
||||
public function testDispatchesCallable()
|
||||
{
|
||||
$response = $this->response;
|
||||
|
||||
$router = new Router();
|
||||
$router->add("/", function () use ($response) {
|
||||
return $response->reveal();
|
||||
});
|
||||
|
||||
$result = $router->getResponse($this->request->reveal());
|
||||
$this->assertSame($response->reveal(), $result);
|
||||
}
|
||||
|
||||
public function testDispatchesCallableWithArguments()
|
||||
{
|
||||
$response = $this->response;
|
||||
$args = ["cat" => "molly"];
|
||||
|
||||
$router = new Router();
|
||||
$router->add("/", function ($rqst, $args) use ($response) {
|
||||
$response->getBody()->willReturn($args["cat"]);
|
||||
return $response->reveal();
|
||||
});
|
||||
|
||||
$result = $router->getResponse($this->request->reveal(), $args);
|
||||
$this->assertEquals("molly", $result->getBody());
|
||||
}
|
||||
|
||||
/**
|
||||
* @runInSeparateProcess
|
||||
* @preserveGlobalState disabled
|
||||
*/
|
||||
public function testStopsDispatchingCallablesAfterFirstNonNull()
|
||||
{
|
||||
$router = new Router();
|
||||
$router->add("/cats/{cat}", function () {
|
||||
echo "Hello, cat!";
|
||||
return true;
|
||||
});
|
||||
$router->add("/cats/{cat}", function () {
|
||||
echo "Hello, cat!";
|
||||
});
|
||||
|
||||
$this->request->getPath()->willReturn("/cats/molly");
|
||||
|
||||
ob_start();
|
||||
$router->getResponse($this->request->reveal());
|
||||
$captured = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
$this->assertEquals("Hello, cat!", $captured);
|
||||
}
|
||||
}
|
||||
|
|
@ -19,7 +19,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
$host = "localhost";
|
||||
$port = $this->getRandomNumberInRange(getenv("PORT"));
|
||||
$script = realpath(__DIR__ . "/sham-routers/method.php");
|
||||
$script = realpath(__DIR__ . "/../../sham-routers/method.php");
|
||||
|
||||
$server = new ShamServer($host, $port, $script);
|
||||
|
||||
|
|
@ -57,7 +57,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
$host = "localhost";
|
||||
$port = $this->getRandomNumberInRange(getenv("PORT"));
|
||||
$script = realpath(__DIR__ . "/sham-routers/headers.php");
|
||||
$script = realpath(__DIR__ . "/../../sham-routers/headers.php");
|
||||
|
||||
$server = new ShamServer($host, $port, $script);
|
||||
|
||||
|
|
@ -92,7 +92,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
$host = "localhost";
|
||||
$port = $this->getRandomNumberInRange(getenv("PORT"));
|
||||
$script = realpath(__DIR__ . "/sham-routers/body.php");
|
||||
$script = realpath(__DIR__ . "/../../sham-routers/body.php");
|
||||
$server = new ShamServer($host, $port, $script);
|
||||
|
||||
$rqst = $this->prophesize("\\pjdietz\\WellRESTed\\Interfaces\\RequestInterface");
|
||||
|
|
@ -125,7 +125,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
$host = "localhost";
|
||||
$port = $this->getRandomNumberInRange(getenv("PORT"));
|
||||
$script = realpath(__DIR__ . "/sham-routers/formFields.php");
|
||||
$script = realpath(__DIR__ . "/../../sham-routers/formFields.php");
|
||||
$server = new ShamServer($host, $port, $script);
|
||||
|
||||
$rqst = new Request("http://$host:$port");
|
||||
|
|
@ -158,7 +158,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
$host = "localhost";
|
||||
$port = $this->getRandomNumberInRange(getenv("PORT"));
|
||||
$script = realpath(__DIR__ . "/sham-routers/headers.php");
|
||||
$script = realpath(__DIR__ . "/../../sham-routers/headers.php");
|
||||
$server = new ShamServer($host, $port, $script);
|
||||
|
||||
$rqst = $this->prophesize("\\pjdietz\\WellRESTed\\Interfaces\\RequestInterface");
|
||||
|
|
@ -181,7 +181,7 @@ class ClientTest extends \PHPUnit_Framework_TestCase
|
|||
{
|
||||
$host = "localhost";
|
||||
$port = $this->getRandomNumberInRange(getenv("PORT"));
|
||||
$script = realpath(__DIR__ . "/sham-routers/headers.php");
|
||||
$script = realpath(__DIR__ . "/../../sham-routers/headers.php");
|
||||
$server = new ShamServer($host, $port, $script);
|
||||
|
||||
$rqst = $this->prophesize("\\pjdietz\\WellRESTed\\Interfaces\\RequestInterface");
|
||||
Loading…
Reference in New Issue