Skip to content

Commit

Permalink
Use ResourcePluginManager
Browse files Browse the repository at this point in the history
  • Loading branch information
bakura10 committed Mar 16, 2014
1 parent c6f6519 commit ec44e7a
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 37 deletions.
2 changes: 1 addition & 1 deletion config/module.config.php
Expand Up @@ -26,9 +26,9 @@
/* Factories that map to a class */
'ZfrRest\Mvc\HttpExceptionListener' => 'ZfrRest\Factory\HttpExceptionListenerFactory',
'ZfrRest\Mvc\Controller\MethodHandler\MethodHandlerPluginManager' => 'ZfrRest\Factory\MethodHandlerPluginManagerFactory',
'ZfrRest\ObjectRepository\ObjectRepositoryPluginManager' => 'ZfrRest\Factory\ObjectRepositoryPluginManagerFactory',
'ZfrRest\Options\ModuleOptions' => 'ZfrRest\Factory\ModuleOptionsFactory',
'ZfrRest\Resource\Metadata\ResourceMetadataFactory' => 'ZfrRest\Factory\ResourceMetadataFactoryFactory',
'ZfrRest\Resource\ResourcePluginManager' => 'ZfrRest\Factory\ResourcePluginManagerFactory',
'ZfrRest\Router\Http\Matcher\AssociationSubPathMatcher' => 'ZfrRest\Factory\AssociationSubPathMatcherFactory',
'ZfrRest\Router\Http\Matcher\BaseSubPathMatcher' => 'ZfrRest\Factory\BaseSubPathMatcherFactory',
'ZfrRest\View\Strategy\ResourceStrategy' => 'ZfrRest\Factory\ResourceStrategyFactory'
Expand Down
4 changes: 2 additions & 2 deletions src/ZfrRest/Factory/ResourceGraphRouteFactory.php
Expand Up @@ -65,8 +65,8 @@ public function createService(ServiceLocatorInterface $serviceLocator)
/* @var \ZfrRest\Resource\Metadata\ResourceMetadataFactory $metadataFactory */
$metadataFactory = $parentLocator->get('ZfrRest\Resource\Metadata\ResourceMetadataFactory');

/* @var \ZfrRest\ObjectRepository\ObjectRepositoryPluginManager $pluginManager */
$pluginManager = $parentLocator->get('ZfrRest\ObjectRepository\ObjectRepositoryPluginManager');
/* @var \ZfrRest\Resource\ResourcePluginManager $pluginManager */
$pluginManager = $parentLocator->get('ZfrRest\Resource\ResourcePluginManager');

/** @var \ZfrRest\Router\Http\Matcher\BaseSubPathMatcher $matcher */
$matcher = $parentLocator->get('ZfrRest\Router\Http\Matcher\BaseSubPathMatcher');
Expand Down
Expand Up @@ -20,15 +20,15 @@

use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use ZfrRest\ObjectRepository\ObjectRepositoryPluginManager;
use ZfrRest\Resource\ResourcePluginManager;

/**
* Factory to create an ObjectRepositoryPluginManager
* Factory to create an ResourcePluginManager
*
* @author Michaël Gallego <mic.gallego@gmail.com>
* @licence MIT
*/
class ObjectRepositoryPluginManagerFactory implements FactoryInterface
class ResourcePluginManagerFactory implements FactoryInterface
{
/**
* {@inheritDoc}
Expand All @@ -41,7 +41,7 @@ public function createService(ServiceLocatorInterface $serviceLocator)
/* @var \Doctrine\Common\Persistence\ObjectManager $objectManager */
$objectManager = $serviceLocator->get($moduleOptions->getObjectManager());

$pluginManager = new ObjectRepositoryPluginManager($objectManager);
$pluginManager = new ResourcePluginManager($objectManager);
$pluginManager->setServiceLocator($serviceLocator);

return $pluginManager;
Expand Down
4 changes: 2 additions & 2 deletions src/ZfrRest/Resource/ResourcePluginManager.php
Expand Up @@ -56,10 +56,10 @@ public function get($name)
{
// First check if an explicit resource was set
if ($this->has($name)) {
return $this->get($name);
return parent::get($name);
}

// Otherwise, fallback to the object manager
// Otherwise, fallback to getting an object repository
return $this->objectManager->getRepository($name);
}

Expand Down
30 changes: 15 additions & 15 deletions src/ZfrRest/Router/Http/ResourceGraphRoute.php
Expand Up @@ -23,9 +23,9 @@
use Zend\Mvc\Router\Http\RouteInterface;
use Zend\Mvc\Router\Http\RouteMatch;
use Zend\Stdlib\RequestInterface;
use ZfrRest\ObjectRepository\ObjectRepositoryPluginManager;
use ZfrRest\Resource\Resource;
use ZfrRest\Resource\ResourceInterface;
use ZfrRest\Resource\ResourcePluginManager;
use ZfrRest\Router\Exception\RuntimeException;
use ZfrRest\Router\Http\Matcher\BaseSubPathMatcher;
use ZfrRest\Router\Http\Matcher\SubPathMatch;
Expand All @@ -43,9 +43,9 @@ class ResourceGraphRoute implements RouteInterface
protected $metadataFactory;

/**
* @var ObjectRepositoryPluginManager
* @var ResourcePluginManager
*/
protected $objectRepositoryPluginManager;
protected $resourcePluginManager;

/**
* @var mixed
Expand All @@ -65,24 +65,24 @@ class ResourceGraphRoute implements RouteInterface
/**
* Constructor
*
* @param MetadataFactory $metadataFactory
* @param ObjectRepositoryPluginManager $objectRepositoryPluginManager
* @param BaseSubPathMatcher $matcher
* @param mixed $resource
* @param string $route
* @param MetadataFactory $metadataFactory
* @param ResourcePluginManager $resourcePluginManager
* @param BaseSubPathMatcher $matcher
* @param mixed $resource
* @param string $route
*/
public function __construct(
MetadataFactory $metadataFactory,
ObjectRepositoryPluginManager $objectRepositoryPluginManager,
ResourcePluginManager $resourcePluginManager,
BaseSubPathMatcher $matcher,
$resource,
$route
) {
$this->metadataFactory = $metadataFactory;
$this->objectRepositoryPluginManager = $objectRepositoryPluginManager;
$this->subPathMatcher = $matcher;
$this->resource = $resource;
$this->route = $route;
$this->metadataFactory = $metadataFactory;
$this->resourcePluginManager = $resourcePluginManager;
$this->subPathMatcher = $matcher;
$this->resource = $resource;
$this->route = $route;
}

/**
Expand Down Expand Up @@ -239,7 +239,7 @@ private function getResource()
}

// Lazy-load the object repository for the resource class name
$repository = $this->objectRepositoryPluginManager->get($this->resource);
$repository = $this->resourcePluginManager->get($this->resource);
$metadata = $this->metadataFactory->getMetadataForClass($this->resource);

return $this->resource = new Resource($repository, $metadata);
Expand Down
4 changes: 2 additions & 2 deletions tests/ZfrRestTest/Factory/ResourceGraphRouteFactoryTest.php
Expand Up @@ -64,8 +64,8 @@ public function testCreateFromFactory()
$this->getMock('Metadata\MetadataFactory', [], [], '', false)
);
$serviceManager->setService(
'ZfrRest\ObjectRepository\ObjectRepositoryPluginManager',
$this->getMock('ZfrRest\ObjectRepository\ObjectRepositoryPluginManager', [], [], '', false)
'ZfrRest\Resource\ResourcePluginManager',
$this->getMock('ZfrRest\Resource\ResourcePluginManager', [], [], '', false)
);
$serviceManager->setService(
'ZfrRest\Router\Http\Matcher\BaseSubPathMatcher',
Expand Down
Expand Up @@ -20,17 +20,17 @@

use PHPUnit_Framework_TestCase;
use Zend\ServiceManager\ServiceManager;
use ZfrRest\Factory\ObjectRepositoryPluginManagerFactory;
use ZfrRest\Factory\ResourcePluginManagerFactory;
use ZfrRest\Options\ModuleOptions;

/**
* @licence MIT
* @author Michaël Gallego <mic.gallego@gmail.com>
*
* @group Coverage
* @covers \ZfrRest\Factory\ObjectRepositoryPluginManagerFactory
* @covers \ZfrRest\Factory\ResourcePluginManagerFactory
*/
class ObjectRepositoryPluginManagerFactoryTest extends PHPUnit_Framework_TestCase
class ResourcePluginManagerFactoryTest extends PHPUnit_Framework_TestCase
{
public function testCreateFromFactory()
{
Expand All @@ -40,10 +40,10 @@ public function testCreateFromFactory()
$serviceManager->setService('ZfrRest\Options\ModuleOptions', $moduleOptions);
$serviceManager->setService('my_object_manager', $this->getMock('Doctrine\Common\Persistence\ObjectManager'));

$factory = new ObjectRepositoryPluginManagerFactory();
$factory = new ResourcePluginManagerFactory();
$result = $factory->createService($serviceManager);

$this->assertInstanceOf('ZfrRest\ObjectRepository\ObjectRepositoryPluginManager', $result);
$this->assertInstanceOf('ZfrRest\Resource\ResourcePluginManager', $result);
$this->assertSame($serviceManager, $result->getServiceLocator());
}
}
Expand Up @@ -17,21 +17,34 @@
*/

namespace ZfrRestTest\ObjectRepository;
use ZfrRest\ObjectRepository\ObjectRepositoryPluginManager;

use ZfrRest\Resource\ResourcePluginManager;

/**
* @licence MIT
* @author Michaël Gallego <mic.gallego@gmail.com>
*
* @group Coverage
* @covers \ZfrRest\ObjectRepository\ObjectRepositoryPluginManager
* @covers \ZfrRest\Resource\ResourcePluginManager
*/
class ObjectRepositoryPluginManagerTest extends \PHPUnit_Framework_TestCase
class ResourcePluginManagerTest extends \PHPUnit_Framework_TestCase
{
public function testCanRetrieveObjectRepository()
public function testFirstCheckForService()
{
$objectManager = $this->getMock('Doctrine\Common\Persistence\ObjectManager');
$pluginManager = new ResourcePluginManager($objectManager);

$object = new \stdClass();
$pluginManager->setService('Foo', $object);

$resource = $pluginManager->get('Foo');
$this->assertSame($object, $resource);
}

public function testCanFallbackToObjectRepository()
{
$objectManager = $this->getMock('Doctrine\Common\Persistence\ObjectManager');
$pluginManager = new ObjectRepositoryPluginManager($objectManager);
$pluginManager = new ResourcePluginManager($objectManager);

$objectManager->expects($this->once())
->method('getRepository')
Expand Down
2 changes: 1 addition & 1 deletion tests/ZfrRestTest/Router/Http/ResourceGraphRouteTest.php
Expand Up @@ -50,7 +50,7 @@ class ResourceGraphRouteTest extends PHPUnit_Framework_TestCase
public function setUp()
{
$this->metadataFactory = $this->getMock('Metadata\MetadataFactory', [], [], '', false);
$this->pluginManager = $this->getMock('ZfrRest\ObjectRepository\ObjectRepositoryPluginManager', [], [], '', false);
$this->pluginManager = $this->getMock('ZfrRest\Resource\ResourcePluginManager', [], [], '', false);
$this->baseSubPathMatcher = $this->getMock('ZfrRest\Router\Http\Matcher\BaseSubPathMatcher', [], [], '', false);
}

Expand Down

0 comments on commit ec44e7a

Please sign in to comment.