Skip to content
This repository has been archived by the owner on Jan 29, 2020. It is now read-only.

Commit

Permalink
Removing test that specifies that allowing anything as the return typ…
Browse files Browse the repository at this point in the history
…e of a middleware is OK

This is likely going to land into a separate dispatch listener instead
  • Loading branch information
Ocramius committed May 1, 2017
1 parent 6170700 commit 98c6d39
Showing 1 changed file with 0 additions and 71 deletions.
71 changes: 0 additions & 71 deletions test/MiddlewareListenerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
namespace ZendTest\Mvc;

use Interop\Container\ContainerInterface;
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ResponseInterface;
Expand Down Expand Up @@ -398,76 +397,6 @@ public function testValidMiddlewareDispatchCancelsPreviousDispatchFailures()
self::assertEmpty($event->getError(), 'Previously set MVC errors are canceled by a successful dispatch');
}

/**
* @dataProvider possibleMiddlewareNonPsr7ResponseReturnValues
*
* @param mixed $middlewareResult
*/
public function testMiddlewareDispatchWillRetrieveAnyCallableReturnValue($middlewareResult)
{
$middlewareName = uniqid('middleware', true);
$routeMatch = new RouteMatch(['middleware' => $middlewareName]);
/* @var $application Application|\PHPUnit_Framework_MockObject_MockObject */
$application = $this->createMock(Application::class);
$eventManager = new EventManager();
$middleware = $this->getMockBuilder(\stdClass::class)->setMethods(['__invoke'])->getMock();
$serviceManager = new ServiceManager([
'factories' => [
'EventManager' => function () {
return new EventManager();
},
],
'services' => [
$middlewareName => $middleware,
],
]);

$application->expects(self::any())->method('getRequest')->willReturn(new Request());
$application->expects(self::any())->method('getEventManager')->willReturn($eventManager);
$application->expects(self::any())->method('getServiceManager')->willReturn($serviceManager);
$application->expects(self::any())->method('getResponse')->willReturn(new Response());
$middleware->expects(self::once())->method('__invoke')->willReturn($middlewareResult);

$eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e) {
self::fail('No dispatch error should have been raised');
});

$event = new MvcEvent();

$event->setRequest(new Request());
$event->setApplication($application);
$event->setError(Application::ERROR_CONTROLLER_CANNOT_DISPATCH);
$event->setRouteMatch($routeMatch);

$listener = new MiddlewareListener();
$result = $listener->onDispatch($event);

self::assertSame($middlewareResult, $result);
self::assertSame($middlewareResult, $event->getResult());
self::assertEmpty($event->getError(), 'No errors raised when the return type is unknown');
}

/**
* @return mixed[][]
*/
public function possibleMiddlewareNonPsr7ResponseReturnValues()
{
return [
[123],
[true],
[false],
[[]],
[new \stdClass()],
[$this],
[$this->createMock(ModelInterface::class)],
[$this->createMock(Response::class)],
[['view model data' => 'as an array']],
[['foo' => new \stdClass()]],
['a response string'],
];
}


public function testValidMiddlewareFiresDispatchableInterfaceEventListeners()
{
$middlewareName = uniqid('middleware', true);
Expand Down

0 comments on commit 98c6d39

Please sign in to comment.