123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- namespace Tests\Behat\Gherkin\Loader;
- use Behat\Gherkin\Loader\DirectoryLoader;
- class DirectoryLoaderTest extends \PHPUnit_Framework_TestCase
- {
- private $gherkin;
- private $loader;
- private $featuresPath;
- protected function setUp()
- {
- $this->gherkin = $this->createGherkinMock();
- $this->loader = new DirectoryLoader($this->gherkin);
- $this->featuresPath = realpath(__DIR__ . '/../Fixtures/directories');
- }
- protected function createGherkinMock()
- {
- $gherkin = $this->getMockBuilder('Behat\Gherkin\Gherkin')
- ->disableOriginalConstructor()
- ->getMock();
- return $gherkin;
- }
- protected function createGherkinFileLoaderMock()
- {
- $loader = $this->getMockBuilder('Behat\Gherkin\Loader\GherkinFileLoader')
- ->disableOriginalConstructor()
- ->getMock();
- return $loader;
- }
- public function testSupports()
- {
- $this->assertFalse($this->loader->supports('non-existent path'));
- $this->assertFalse($this->loader->supports('non-existent path:2'));
- $this->assertFalse($this->loader->supports(__DIR__ . ':d'));
- $this->assertFalse($this->loader->supports(__DIR__ . '/../Fixtures/features/pystring.feature'));
- $this->assertTrue($this->loader->supports(__DIR__));
- $this->assertTrue($this->loader->supports(__DIR__ . '/../Fixtures/features'));
- }
- public function testUndefinedFileLoad()
- {
- $this->gherkin
- ->expects($this->once())
- ->method('resolveLoader')
- ->with($this->featuresPath.DIRECTORY_SEPARATOR.'phps'.DIRECTORY_SEPARATOR.'some_file.php')
- ->will($this->returnValue(null));
- $this->assertEquals(array(), $this->loader->load($this->featuresPath . '/phps'));
- }
- public function testBasePath()
- {
- $this->gherkin
- ->expects($this->once())
- ->method('resolveLoader')
- ->with($this->featuresPath.DIRECTORY_SEPARATOR.'phps'.DIRECTORY_SEPARATOR.'some_file.php')
- ->will($this->returnValue(null));
- $this->loader->setBasePath($this->featuresPath);
- $this->assertEquals(array(), $this->loader->load('phps'));
- }
- public function testDefinedFileLoad()
- {
- $loaderMock = $this->createGherkinFileLoaderMock();
- $this->gherkin
- ->expects($this->once())
- ->method('resolveLoader')
- ->with($this->featuresPath.DIRECTORY_SEPARATOR.'phps'.DIRECTORY_SEPARATOR.'some_file.php')
- ->will($this->returnValue($loaderMock));
- $loaderMock
- ->expects($this->once())
- ->method('load')
- ->with($this->featuresPath.DIRECTORY_SEPARATOR.'phps'.DIRECTORY_SEPARATOR.'some_file.php')
- ->will($this->returnValue(array('feature1', 'feature2')));
- $this->assertEquals(array('feature1', 'feature2'), $this->loader->load($this->featuresPath . '/phps'));
- }
- }
|