You are here

class RouterTest in Zircon Profile 8

Same name in this branch
  1. 8 vendor/symfony/routing/Tests/RouterTest.php \Symfony\Component\Routing\Tests\RouterTest
  2. 8 core/modules/system/src/Tests/Routing/RouterTest.php \Drupal\system\Tests\Routing\RouterTest
Same name and namespace in other branches
  1. 8.0 vendor/symfony/routing/Tests/RouterTest.php \Symfony\Component\Routing\Tests\RouterTest

Hierarchy

  • class \Symfony\Component\Routing\Tests\RouterTest extends \Symfony\Component\Routing\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of RouterTest

File

vendor/symfony/routing/Tests/RouterTest.php, line 17

Namespace

Symfony\Component\Routing\Tests
View source
class RouterTest extends \PHPUnit_Framework_TestCase {
  private $router = null;
  private $loader = null;
  protected function setUp() {
    $this->loader = $this
      ->getMock('Symfony\\Component\\Config\\Loader\\LoaderInterface');
    $this->router = new Router($this->loader, 'routing.yml');
  }
  public function testSetOptionsWithSupportedOptions() {
    $this->router
      ->setOptions(array(
      'cache_dir' => './cache',
      'debug' => true,
      'resource_type' => 'ResourceType',
    ));
    $this
      ->assertSame('./cache', $this->router
      ->getOption('cache_dir'));
    $this
      ->assertTrue($this->router
      ->getOption('debug'));
    $this
      ->assertSame('ResourceType', $this->router
      ->getOption('resource_type'));
  }

  /**
   * @expectedException \InvalidArgumentException
   * @expectedExceptionMessage The Router does not support the following options: "option_foo", "option_bar"
   */
  public function testSetOptionsWithUnsupportedOptions() {
    $this->router
      ->setOptions(array(
      'cache_dir' => './cache',
      'option_foo' => true,
      'option_bar' => 'baz',
      'resource_type' => 'ResourceType',
    ));
  }
  public function testSetOptionWithSupportedOption() {
    $this->router
      ->setOption('cache_dir', './cache');
    $this
      ->assertSame('./cache', $this->router
      ->getOption('cache_dir'));
  }

  /**
   * @expectedException \InvalidArgumentException
   * @expectedExceptionMessage The Router does not support the "option_foo" option
   */
  public function testSetOptionWithUnsupportedOption() {
    $this->router
      ->setOption('option_foo', true);
  }

  /**
   * @expectedException \InvalidArgumentException
   * @expectedExceptionMessage The Router does not support the "option_foo" option
   */
  public function testGetOptionWithUnsupportedOption() {
    $this->router
      ->getOption('option_foo', true);
  }
  public function testThatRouteCollectionIsLoaded() {
    $this->router
      ->setOption('resource_type', 'ResourceType');
    $routeCollection = $this
      ->getMock('Symfony\\Component\\Routing\\RouteCollection');
    $this->loader
      ->expects($this
      ->once())
      ->method('load')
      ->with('routing.yml', 'ResourceType')
      ->will($this
      ->returnValue($routeCollection));
    $this
      ->assertSame($routeCollection, $this->router
      ->getRouteCollection());
  }

  /**
   * @dataProvider provideMatcherOptionsPreventingCaching
   */
  public function testMatcherIsCreatedIfCacheIsNotConfigured($option) {
    $this->router
      ->setOption($option, null);
    $this->loader
      ->expects($this
      ->once())
      ->method('load')
      ->with('routing.yml', null)
      ->will($this
      ->returnValue($this
      ->getMock('Symfony\\Component\\Routing\\RouteCollection')));
    $this
      ->assertInstanceOf('Symfony\\Component\\Routing\\Matcher\\UrlMatcher', $this->router
      ->getMatcher());
  }
  public function provideMatcherOptionsPreventingCaching() {
    return array(
      array(
        'cache_dir',
      ),
      array(
        'matcher_cache_class',
      ),
    );
  }

  /**
   * @dataProvider provideGeneratorOptionsPreventingCaching
   */
  public function testGeneratorIsCreatedIfCacheIsNotConfigured($option) {
    $this->router
      ->setOption($option, null);
    $this->loader
      ->expects($this
      ->once())
      ->method('load')
      ->with('routing.yml', null)
      ->will($this
      ->returnValue($this
      ->getMock('Symfony\\Component\\Routing\\RouteCollection')));
    $this
      ->assertInstanceOf('Symfony\\Component\\Routing\\Generator\\UrlGenerator', $this->router
      ->getGenerator());
  }
  public function provideGeneratorOptionsPreventingCaching() {
    return array(
      array(
        'cache_dir',
      ),
      array(
        'generator_cache_class',
      ),
    );
  }
  public function testMatchRequestWithUrlMatcherInterface() {
    $matcher = $this
      ->getMock('Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface');
    $matcher
      ->expects($this
      ->once())
      ->method('match');
    $p = new \ReflectionProperty($this->router, 'matcher');
    $p
      ->setAccessible(true);
    $p
      ->setValue($this->router, $matcher);
    $this->router
      ->matchRequest(Request::create('/'));
  }
  public function testMatchRequestWithRequestMatcherInterface() {
    $matcher = $this
      ->getMock('Symfony\\Component\\Routing\\Matcher\\RequestMatcherInterface');
    $matcher
      ->expects($this
      ->once())
      ->method('matchRequest');
    $p = new \ReflectionProperty($this->router, 'matcher');
    $p
      ->setAccessible(true);
    $p
      ->setValue($this->router, $matcher);
    $this->router
      ->matchRequest(Request::create('/'));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
RouterTest::$loader private property
RouterTest::$router private property
RouterTest::provideGeneratorOptionsPreventingCaching public function
RouterTest::provideMatcherOptionsPreventingCaching public function
RouterTest::setUp protected function
RouterTest::testGeneratorIsCreatedIfCacheIsNotConfigured public function @dataProvider provideGeneratorOptionsPreventingCaching
RouterTest::testGetOptionWithUnsupportedOption public function @expectedException \InvalidArgumentException @expectedExceptionMessage The Router does not support the "option_foo" option
RouterTest::testMatcherIsCreatedIfCacheIsNotConfigured public function @dataProvider provideMatcherOptionsPreventingCaching
RouterTest::testMatchRequestWithRequestMatcherInterface public function
RouterTest::testMatchRequestWithUrlMatcherInterface public function
RouterTest::testSetOptionsWithSupportedOptions public function
RouterTest::testSetOptionsWithUnsupportedOptions public function @expectedException \InvalidArgumentException @expectedExceptionMessage The Router does not support the following options: "option_foo", "option_bar"
RouterTest::testSetOptionWithSupportedOption public function
RouterTest::testSetOptionWithUnsupportedOption public function @expectedException \InvalidArgumentException @expectedExceptionMessage The Router does not support the "option_foo" option
RouterTest::testThatRouteCollectionIsLoaded public function