RouteCollectionTest.php 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. /*
  3. * This file is part of the Sonata package.
  4. *
  5. * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Sonata\AdminBundle\Tests\Route;
  11. use Sonata\AdminBundle\Route\RouteCollection;
  12. class RouteCollectionTest extends \PHPUnit_Framework_TestCase
  13. {
  14. public function testGetter()
  15. {
  16. $routeCollection = new RouteCollection('base.Code.Route', 'baseRouteName', 'baseRoutePattern', 'baseControllerName');
  17. $this->assertEquals('base.Code.Route', $routeCollection->getBaseCodeRoute());
  18. $this->assertEquals('baseRouteName', $routeCollection->getBaseRouteName());
  19. $this->assertEquals('baseRoutePattern', $routeCollection->getBaseRoutePattern());
  20. $this->assertEquals('baseControllerName', $routeCollection->getBaseControllerName());
  21. }
  22. public function testActionify()
  23. {
  24. $routeCollection = new RouteCollection('base.Code.Route', 'baseRouteName', 'baseRoutePattern', 'baseControllerName');
  25. $this->assertEquals('fooBar', $routeCollection->actionify('Foo bar'));
  26. $this->assertEquals('bar', $routeCollection->actionify('Foo.bar'));
  27. }
  28. public function testCode()
  29. {
  30. $routeCollection = new RouteCollection('base.Code.Route', 'baseRouteName', 'baseRoutePattern', 'baseControllerName');
  31. $this->assertEquals('base.Code.Route.test', $routeCollection->getCode('test'));
  32. $this->assertEquals('base.Code.Route.test', $routeCollection->getCode('base.Code.Route.test'));
  33. }
  34. public function testCollection()
  35. {
  36. $routeCollection = new RouteCollection('base.Code.Route', 'baseRouteName', 'baseRoutePattern', 'baseControllerName');
  37. $routeCollection->add('view');
  38. $this->assertTrue($routeCollection->has('view'));
  39. $routeCollection->remove('view');
  40. $this->assertFalse($routeCollection->has('view'));
  41. $routeCollection->add('create');
  42. $route = $routeCollection->get('create');
  43. $this->assertInstanceOf('Symfony\Component\Routing\Route', $route);
  44. }
  45. public function testChildCollection()
  46. {
  47. $childCollection = new RouteCollection('baseCodeRouteChild', 'baseRouteNameChild', 'baseRoutePatternChild', 'baseControllerNameChild');
  48. $childCollection->add('view');
  49. $childCollection->add('create');
  50. $parentCollection = new RouteCollection('baseCodeRoute', 'baseRouteName', 'baseRoutePattern', 'baseControllerName');
  51. $parentCollection->add('view');
  52. $parentCollection->add('edit');
  53. $parentCollection->addCollection($childCollection);
  54. $this->assertTrue($parentCollection->has('view'));
  55. $this->assertTrue($parentCollection->has('edit'));
  56. $this->assertFalse($parentCollection->has('create'));
  57. $this->assertFalse($parentCollection->has('baseCodeRouteChild.edit'));
  58. }
  59. public function testRoute()
  60. {
  61. $routeCollection = new RouteCollection('baseCodeRoute', 'baseRouteName', 'baseRoutePattern', 'baseControllerName');
  62. $routeCollection->add('view');
  63. $route = $routeCollection->get('view');
  64. $this->assertEquals('baseControllerName:view', $route->getDefault('_controller'));
  65. $this->assertEquals('baseCodeRoute', $route->getDefault('_sonata_admin'));
  66. $this->assertEquals('baseRouteName_view', $route->getDefault('_sonata_name'));
  67. }
  68. }