mageekguy\atoum\scripts\runner::init PHP Method

init() public method

public init ( $directory = null )
    public function init($directory = null)
    {
        $resourceDirectory = static::getResourcesDirectory();
        $currentDirectory = $this->getDirectory();
        if ($directory !== null) {
            $currentDirectory = rtrim($directory, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
        }
        $defaultConfigFile = $currentDirectory . static::defaultConfigFile;
        if ($this->adapter->file_exists($defaultConfigFile) === false || $this->prompt($this->locale->_('Default configuration file \'' . static::defaultConfigFile . '\' already exists in ' . $currentDirectory . ', type \'Y\' to overwrite it...')) === 'Y') {
            $this->copy($resourceDirectory . '/configurations/runner/atoum.php.dist', $defaultConfigFile)->writeInfo($this->locale->_('Default configuration file \'' . static::defaultConfigFile . '\' was successfully created in ' . $currentDirectory));
        }
        $bootstrapFile = $currentDirectory . static::defaultBootstrapFile;
        if ($this->adapter->file_exists($bootstrapFile) == false || $this->prompt($this->locale->_('Default bootstrap file \'' . static::defaultBootstrapFile . '\' already exists in ' . $currentDirectory . ', type \'Y\' to overwrite it...')) === 'Y') {
            $this->copy($resourceDirectory . '/configurations/runner/bootstrap.php.dist', $bootstrapFile)->writeInfo($this->locale->_('Default bootstrap file \'' . static::defaultBootstrapFile . '\' was successfully created in ' . $currentDirectory));
        }
        return $this->stopRun();
    }

Usage Example

Beispiel #1
0
 public function testInit()
 {
     $this->given($runner = new testedClass(__FILE__))->and($runner->setAdapter($adapter = new atoum\test\adapter()))->and($runner->setInfoWriter($outputWriter = new \mock\mageekguy\atoum\writers\std\out()))->and($runner->setPrompt($prompt = new \mock\mageekguy\atoum\script\prompt()))->and($adapter->copy = true)->and($adapter->file_exists = false)->and($this->calling($outputWriter)->write = function () {
     })->then->object($runner->init())->isIdenticalTo($runner)->mock($prompt)->call('ask')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' already exists in ' . $runner->getDirectory() . ', type \'Y\' to overwrite it...')->never()->mock($outputWriter)->call('write')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' was successfully created in ' . $runner->getDirectory())->once()->withArguments('Default bootstrap file \'' . testedClass::defaultBootstrapFile . '\' was successfully created in ' . $runner->getDirectory())->once()->adapter($adapter)->call('copy')->withArguments(atoum\directory . '/resources/configurations/runner/atoum.php.dist', __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultConfigFile)->once()->withArguments(atoum\directory . '/resources/configurations/runner/bootstrap.php.dist', __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultBootstrapFile)->once()->if($this->resetAdapter($adapter))->and($this->resetMock($outputWriter))->then->object($runner->init($directory = uniqid()))->isIdenticalTo($runner)->mock($prompt)->call('ask')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' already exists in ' . $directory . ', type \'Y\' to overwrite it...')->never()->mock($outputWriter)->call('write')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' was successfully created in ' . $directory . DIRECTORY_SEPARATOR)->once()->withArguments('Default bootstrap file \'' . testedClass::defaultBootstrapFile . '\' was successfully created in ' . $directory . DIRECTORY_SEPARATOR)->once()->adapter($adapter)->call('copy')->withArguments(atoum\directory . '/resources/configurations/runner/atoum.php.dist', $directory . DIRECTORY_SEPARATOR . testedClass::defaultConfigFile)->once()->withArguments(atoum\directory . '/resources/configurations/runner/bootstrap.php.dist', $directory . DIRECTORY_SEPARATOR . testedClass::defaultBootstrapFile)->once()->if($this->resetAdapter($adapter))->and($this->resetMock($outputWriter))->and($adapter->file_exists = true)->and($this->calling($prompt)->ask = 'Y')->then->object($runner->init())->isIdenticalTo($runner)->mock($prompt)->call('ask')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' already exists in ' . $runner->getDirectory() . ', type \'Y\' to overwrite it...')->once()->withArguments('Default bootstrap file \'' . testedClass::defaultBootstrapFile . '\' already exists in ' . $runner->getDirectory() . ', type \'Y\' to overwrite it...')->once()->mock($outputWriter)->call('write')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' was successfully created in ' . $runner->getDirectory())->once()->withArguments('Default bootstrap file \'' . testedClass::defaultBootstrapFile . '\' was successfully created in ' . $runner->getDirectory())->once()->adapter($adapter)->call('copy')->withArguments(atoum\directory . '/resources/configurations/runner/atoum.php.dist', __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultConfigFile)->once()->withArguments(atoum\directory . '/resources/configurations/runner/bootstrap.php.dist', __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultBootstrapFile)->once()->if($this->resetAdapter($adapter))->and($this->resetMock($outputWriter))->and($this->resetMock($prompt))->and($adapter->file_exists = true)->and($this->calling($prompt)->ask = 'y')->then->object($runner->init())->isIdenticalTo($runner)->mock($prompt)->call('ask')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' already exists in ' . $runner->getDirectory() . ', type \'Y\' to overwrite it...')->once()->withArguments('Default bootstrap file \'' . testedClass::defaultBootstrapFile . '\' already exists in ' . $runner->getDirectory() . ', type \'Y\' to overwrite it...')->once()->mock($outputWriter)->call('write')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' was successfully created in ' . $runner->getDirectory())->never()->withArguments('Default bootstrap file \'' . testedClass::defaultBootstrapFile . '\' was successfully created in ' . $runner->getDirectory())->never()->adapter($adapter)->call('copy')->withArguments(atoum\directory . '/resources/configurations/runner/atoum.php.dist', __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultConfigFile)->never()->withArguments(atoum\directory . '/resources/configurations/runner/bootstrap.php.dist', __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultBootstrapFile)->never()->if($this->resetAdapter($adapter))->and($this->resetMock($outputWriter))->and($this->resetMock($prompt))->and($adapter->file_exists = true)->and($this->calling($prompt)->ask = uniqid())->then->object($runner->init())->isIdenticalTo($runner)->mock($prompt)->call('ask')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' already exists in ' . $runner->getDirectory() . ', type \'Y\' to overwrite it...')->once()->withArguments('Default bootstrap file \'' . testedClass::defaultBootstrapFile . '\' already exists in ' . $runner->getDirectory() . ', type \'Y\' to overwrite it...')->once()->mock($outputWriter)->call('write')->withArguments('Default configuration file \'' . testedClass::defaultConfigFile . '\' was successfully created in ' . $runner->getDirectory() . PHP_EOL)->never()->withArguments('Default bootstrap file \'' . testedClass::defaultBootstrapFile . '\' was successfully created in ' . $runner->getDirectory() . PHP_EOL)->never()->adapter($adapter)->call('copy')->withArguments(atoum\directory . '/resources/configurations/runner/atoum.php.dist', __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultConfigFile)->never()->withArguments(atoum\directory . '/resources/configurations/runner/bootstrap.php.dist', __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultBootstrapFile)->never()->if($this->calling($prompt)->ask = 'Y')->and($adapter->copy = false)->then->exception(function () use($runner) {
         $runner->init();
     })->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Unable to write \'' . atoum\directory . '/resources/configurations/runner/atoum.php.dist\' to \'' . __DIR__ . DIRECTORY_SEPARATOR . testedClass::defaultConfigFile . '\'');
 }