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);
}