public function testSetOriginDirectory()
{
$this->if($adapter = new atoum\test\adapter())->and($adapter->php_sapi_name = function () {
return 'cli';
})->and($adapter->realpath = function ($path) {
return $path;
})->and($generator = new phar\generator(uniqid(), $adapter))->then->exception(function () use($generator) {
$generator->setOriginDirectory('');
})->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Empty origin directory is invalid')->if($adapter->is_dir = function () {
return false;
})->then->exception(function () use($generator, &$directory) {
$generator->setOriginDirectory($directory = uniqid());
})->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Path \'' . $directory . '\' of origin directory is invalid')->if($adapter->is_dir = function () {
return true;
})->then->object($generator->setOriginDirectory('/'))->isIdenticalTo($generator)->string($generator->getOriginDirectory())->isEqualTo('/')->object($generator->setOriginDirectory(($directory = uniqid()) . DIRECTORY_SEPARATOR))->isIdenticalTo($generator)->string($generator->getOriginDirectory())->isEqualTo($directory)->if($generator->setDestinationDirectory(uniqid()))->then->exception(function () use($generator) {
$generator->setOriginDirectory($generator->getDestinationDirectory());
})->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Origin directory must be different from destination directory')->if($realDirectory = $generator->getDestinationDirectory() . DIRECTORY_SEPARATOR . uniqid())->and($adapter->realpath = function ($path) use($realDirectory) {
return $realDirectory;
})->then->object($generator->setOriginDirectory('/'))->isIdenticalTo($generator)->string($generator->getOriginDirectory())->isEqualTo($realDirectory);
}