spec\Sylius\Bundle\ResourceBundle\Routing\ResourceLoaderSpec::it_generates_routing_for_a_section PHP Метод

it_generates_routing_for_a_section() публичный Метод

public it_generates_routing_for_a_section ( Sylius\Component\Resource\Metadata\RegistryInterface $resourceRegistry, Sylius\Component\Resource\Metadata\MetadataInterface $metadata, Sylius\Bundle\ResourceBundle\Routing\RouteFactoryInterface $routeFactory, RouteCollection $routeCollection, Symfony\Component\Routing\Route $showRoute, Symfony\Component\Routing\Route $indexRoute, Symfony\Component\Routing\Route $createRoute, Symfony\Component\Routing\Route $updateRoute, Symfony\Component\Routing\Route $deleteRoute )
$resourceRegistry Sylius\Component\Resource\Metadata\RegistryInterface
$metadata Sylius\Component\Resource\Metadata\MetadataInterface
$routeFactory Sylius\Bundle\ResourceBundle\Routing\RouteFactoryInterface
$routeCollection Symfony\Component\Routing\RouteCollection
$showRoute Symfony\Component\Routing\Route
$indexRoute Symfony\Component\Routing\Route
$createRoute Symfony\Component\Routing\Route
$updateRoute Symfony\Component\Routing\Route
$deleteRoute Symfony\Component\Routing\Route
    function it_generates_routing_for_a_section(RegistryInterface $resourceRegistry, MetadataInterface $metadata, RouteFactoryInterface $routeFactory, RouteCollection $routeCollection, Route $showRoute, Route $indexRoute, Route $createRoute, Route $updateRoute, Route $deleteRoute)
    {
        $resourceRegistry->get('sylius.product')->willReturn($metadata);
        $metadata->getApplicationName()->willReturn('sylius');
        $metadata->getName()->willReturn('product');
        $metadata->getPluralName()->willReturn('products');
        $metadata->getServiceId('controller')->willReturn('sylius.controller.product');
        $routeFactory->createRouteCollection()->willReturn($routeCollection);
        $configuration = <<<EOT
alias: sylius.product
section: admin
EOT;
        $showDefaults = ['_controller' => 'sylius.controller.product:showAction', '_sylius' => ['section' => 'admin', 'permission' => false]];
        $routeFactory->createRoute('/products/{id}', $showDefaults, [], [], '', [], ['GET'])->willReturn($showRoute);
        $routeCollection->add('sylius_admin_product_show', $showRoute)->shouldBeCalled();
        $indexDefaults = ['_controller' => 'sylius.controller.product:indexAction', '_sylius' => ['section' => 'admin', 'permission' => false]];
        $routeFactory->createRoute('/products/', $indexDefaults, [], [], '', [], ['GET'])->willReturn($indexRoute);
        $routeCollection->add('sylius_admin_product_index', $indexRoute)->shouldBeCalled();
        $createDefaults = ['_controller' => 'sylius.controller.product:createAction', '_sylius' => ['section' => 'admin', 'permission' => false]];
        $routeFactory->createRoute('/products/new', $createDefaults, [], [], '', [], ['GET', 'POST'])->willReturn($createRoute);
        $routeCollection->add('sylius_admin_product_create', $createRoute)->shouldBeCalled();
        $updateDefaults = ['_controller' => 'sylius.controller.product:updateAction', '_sylius' => ['section' => 'admin', 'permission' => false]];
        $routeFactory->createRoute('/products/{id}/edit', $updateDefaults, [], [], '', [], ['GET', 'PUT', 'PATCH'])->willReturn($updateRoute);
        $routeCollection->add('sylius_admin_product_update', $updateRoute)->shouldBeCalled();
        $deleteDefaults = ['_controller' => 'sylius.controller.product:deleteAction', '_sylius' => ['section' => 'admin', 'permission' => false]];
        $routeFactory->createRoute('/products/{id}', $deleteDefaults, [], [], '', [], ['DELETE'])->willReturn($deleteRoute);
        $routeCollection->add('sylius_admin_product_delete', $deleteRoute)->shouldBeCalled();
        $this->load($configuration, 'sylius.resource')->shouldReturn($routeCollection);
    }