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

Commit 606ce94

Browse files
committed
Using a real service manager in the MiddlewareListenerTest - no test is mocking anything particular at this point
1 parent 0af1831 commit 606ce94

File tree

1 file changed

+41
-17
lines changed

1 file changed

+41
-17
lines changed

test/MiddlewareListenerTest.php

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,21 @@ public function createMvcEvent($middlewareMatched, $middleware = null)
5050
$this->routeMatch->getParam('middleware', false)->willReturn($middlewareMatched);
5151
$this->routeMatch->getParams()->willReturn([]);
5252

53-
$eventManager = new EventManager();
54-
55-
$serviceManager = $this->prophesize(ContainerInterface::class);
56-
$serviceManager->has($middlewareMatched)->willReturn(true);
57-
$serviceManager->get($middlewareMatched)->willReturn($middleware);
53+
$eventManager = new EventManager();
54+
$serviceManager = new ServiceManager([
55+
'factories' => [
56+
'EventManager' => function () {
57+
return new EventManager();
58+
},
59+
],
60+
'services' => [
61+
$middlewareMatched => $middleware,
62+
],
63+
]);
5864

5965
$application = $this->prophesize(Application::class);
6066
$application->getEventManager()->willReturn($eventManager);
61-
$application->getServiceManager()->will(function () use ($serviceManager) {
62-
return $serviceManager->reveal();
63-
});
67+
$application->getServiceManager()->willReturn($serviceManager);
6468
$application->getResponse()->willReturn($response);
6569

6670
$event = new MvcEvent();
@@ -83,6 +87,7 @@ public function testSuccessfullyDispatchesMiddleware()
8387
$application = $event->getApplication();
8488

8589
$application->getEventManager()->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e) {
90+
die(var_dump($e->getParam('exception')->getMessage()));
8691
$this->fail(sprintf('dispatch.error triggered when it should not be: %s', var_export($e->getError(), 1)));
8792
});
8893

@@ -249,6 +254,12 @@ public function testCanLoadFromAbstractFactory()
249254

250255
$serviceManager = new ServiceManager();
251256
$serviceManager->addAbstractFactory(TestAsset\MiddlewareAbstractFactory::class);
257+
$serviceManager->setFactory(
258+
'EventManager',
259+
function () {
260+
return new EventManager();
261+
}
262+
);
252263

253264
$application = $this->prophesize(Application::class);
254265
$application->getEventManager()->willReturn($eventManager);
@@ -349,19 +360,25 @@ public function testValidMiddlewareDispatchCancelsPreviousDispatchFailures()
349360
$response = new DiactorosResponse();
350361
/* @var $application Application|\PHPUnit_Framework_MockObject_MockObject */
351362
$application = $this->createMock(Application::class);
352-
$serviceManager = $this->createMock(ServiceManager::class);
353363
$eventManager = new EventManager();
354364
$middleware = $this->getMockBuilder(\stdClass::class)->setMethods(['__invoke'])->getMock();
365+
$serviceManager = new ServiceManager([
366+
'factories' => [
367+
'EventManager' => function () {
368+
return new EventManager();
369+
},
370+
],
371+
'services' => [
372+
$middlewareName => $middleware,
373+
],
374+
]);
355375

356376
$application->expects(self::any())->method('getRequest')->willReturn(new Request());
357377
$application->expects(self::any())->method('getEventManager')->willReturn($eventManager);
358378
$application->expects(self::any())->method('getServiceManager')->willReturn($serviceManager);
359379
$application->expects(self::any())->method('getResponse')->willReturn(new Response());
360380
$middleware->expects(self::once())->method('__invoke')->willReturn($response);
361381

362-
$serviceManager->expects(self::any())->method('has')->with($middlewareName)->willReturn(true);
363-
$serviceManager->expects(self::any())->method('get')->with($middlewareName)->willReturn($middleware);
364-
365382
$event = new MvcEvent();
366383

367384
$event->setRequest(new Request());
@@ -388,20 +405,27 @@ public function testMiddlewareDispatchWillRetrieveAnyCallableReturnValue($middle
388405
$routeMatch = new RouteMatch(['middleware' => $middlewareName]);
389406
/* @var $application Application|\PHPUnit_Framework_MockObject_MockObject */
390407
$application = $this->createMock(Application::class);
391-
$serviceManager = $this->createMock(ServiceManager::class);
392408
$eventManager = new EventManager();
393409
$middleware = $this->getMockBuilder(\stdClass::class)->setMethods(['__invoke'])->getMock();
410+
$serviceManager = new ServiceManager([
411+
'factories' => [
412+
'EventManager' => function () {
413+
return new EventManager();
414+
},
415+
],
416+
'services' => [
417+
$middlewareName => $middleware,
418+
],
419+
]);
394420

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

401-
$serviceManager->expects(self::any())->method('has')->with($middlewareName)->willReturn(true);
402-
$serviceManager->expects(self::any())->method('get')->with($middlewareName)->willReturn($middleware);
403-
404-
$eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function () {
427+
$eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, function ($e) {
428+
var_dump($e->getParam('exception')->getMessage());
405429
self::fail('No dispatch error should have been raised');
406430
});
407431

0 commit comments

Comments
 (0)