Skip to content

Commit 8e00f59

Browse files
committed
Merge pull request #44 from AGmakonts/feature/zf3-support
ZF MVC 3.0.0 compatibility Conflicts: Module.php composer.json config/module.config.php src/ApiProblem.php src/Listener/ApiProblemListener.php src/Listener/RenderErrorListener.php src/View/ApiProblemStrategy.php test/ApiProblemResponseTest.php
2 parents 3207487 + 5f7fb0e commit 8e00f59

28 files changed

+355
-223
lines changed

Module.php

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?php
2+
23
/**
34
* @license http://opensource.org/licenses/BSD-3-Clause BSD-3-Clause
45
* @copyright Copyright (c) 2014 Zend Technologies USA Inc. (http://www.zend.com)
@@ -11,7 +12,7 @@
1112
use ZF\ApiProblem\Listener\SendApiProblemResponseListener;
1213

1314
/**
14-
* ZF2 module
15+
* ZF2 module.
1516
*/
1617
class Module
1718
{
@@ -26,19 +27,19 @@ public function getConfig()
2627
}
2728

2829
/**
29-
* Listener for bootstrap event
30+
* Listener for bootstrap event.
3031
*
3132
* Attaches a render event.
3233
*
3334
* @param MvcEvent $e
3435
*/
3536
public function onBootstrap(MvcEvent $e)
3637
{
37-
$app = $e->getTarget();
38+
$app = $e->getTarget();
3839
$serviceManager = $app->getServiceManager();
3940
$eventManager = $app->getEventManager();
4041

41-
$serviceManager->get('ZF\ApiProblem\ApiProblemListener')->attach($eventmanager);
42+
$serviceManager->get(ApiProblemListener::class)->attach($eventmanager);
4243
$eventManager->attach(MvcEvent::EVENT_RENDER, [$this, 'onRender'], 100);
4344

4445
$sendResponseListener = $serviceManager->get('SendResponseListener');
@@ -50,24 +51,24 @@ public function onBootstrap(MvcEvent $e)
5051
}
5152

5253
/**
53-
* Listener for the render event
54+
* Listener for the render event.
5455
*
5556
* Attaches a rendering/response strategy to the View.
5657
*
5758
* @param MvcEvent $e
5859
*/
5960
public function onRender(MvcEvent $e)
6061
{
61-
$app = $e->getTarget();
62+
$app = $e->getTarget();
6263
$services = $app->getServiceManager();
6364

6465
if ($services->has('View')) {
65-
$view = $services->get('View');
66+
$view = $services->get('View');
6667
$events = $view->getEventManager();
6768

6869
// register at high priority, to "beat" normal json strategy registered
6970
// via view manager, as well as HAL strategy.
70-
$services->get('ZF\ApiProblem\ApiProblemStrategy')->attach($events, 400);
71+
$services->get(ApiProblemStrategy::class)->attach($events, 400);
7172
}
7273
}
7374
}

ModuleTest.php

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?php
2+
3+
/**
4+
* Creator: adamgrabek
5+
* Date: 08.06.2016
6+
* Time: 00:06.
7+
*/
8+
9+
namespace ZF\ApiProblem;
10+
11+
use PHPUnit_Framework_TestCase as TestCase;
12+
use Zend\EventManager\EventManager;
13+
use Zend\EventManager\SharedEventManager;
14+
use Zend\Mvc\Application;
15+
use Zend\Mvc\MvcEvent;
16+
use Zend\Mvc\SendResponseListener;
17+
use Zend\ServiceManager\ServiceLocatorInterface;
18+
use ZF\ApiProblem\Listener\ApiProblemListener;
19+
use ZF\ApiProblem\Listener\SendApiProblemResponseListener;
20+
21+
class ModuleTest extends TestCase
22+
{
23+
public function testOnBootstrap()
24+
{
25+
$module = new Module();
26+
27+
$application = $this->getMock(Application::class, [], [], '', false);
28+
$serviceLocator = $this->getMockForAbstractClass(ServiceLocatorInterface::class);
29+
$serviceLocator->method('get')->will($this->returnCallback([$this, 'serviceLocator']));
30+
31+
$eventManager = new EventManager(new SharedEventManager());
32+
$event = $this->getMock(MvcEvent::class);
33+
34+
$application->method('getServiceManager')->willReturn($serviceLocator);
35+
$application->method('getEventManager')->willReturn($eventManager);
36+
$event->expects($this->once())->method('getTarget')->willReturn($application);
37+
38+
$module->onBootstrap($event);
39+
}
40+
41+
public function serviceLocator($service)
42+
{
43+
switch ($service) {
44+
case 'ZF\ApiProblem\Listener\ApiProblemListener':
45+
return new ApiProblemListener();
46+
break;
47+
case 'SendResponseListener':
48+
$listener = $this->getMock(SendResponseListener::class);
49+
$listener->method('getEventManager')->willReturn(new EventManager());
50+
51+
return $listener;
52+
break;
53+
case SendApiProblemResponseListener::class :
54+
return new SendApiProblemResponseListener();
55+
default:
56+
//
57+
}
58+
}
59+
}

composer.lock

Lines changed: 47 additions & 46 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/module.config.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
/**
33
* @license http://opensource.org/licenses/BSD-3-Clause BSD-3-Clause
4-
* @copyright Copyright (c) 2014 Zend Technologies USA Inc. (http://www.zend.com)
4+
* @copyright Copyright (c) 2014-2016 Zend Technologies USA Inc. (http://www.zend.com)
55
*/
66

77
namespace ZF\ApiProblem;
@@ -34,6 +34,6 @@
3434
// 'accept_filters' => $stringOrArray,
3535

3636
// Array of controller service names that should enable the ApiProblem render.error listener
37-
//'render_error_controllers' => [],
37+
// 'render_error_controllers' => [],
3838
],
3939
];

phpunit.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@
33
<testsuite name="ZFApiProblem Module Tests">
44
<directory>./test</directory>
55
</testsuite>
6+
<testsuite name="ZFApiProblem Module Class tests">
7+
<file>./ModuleTest.php</file>
8+
</testsuite>
69
</testsuites>
710
</phpunit>

0 commit comments

Comments
 (0)