public function testSetDestinationDirectory()
{
$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->setDestinationDirectory('');
})->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Empty destination directory is invalid')->if($adapter->is_dir = function () {
return false;
})->then->exception(function () use($generator, &$directory) {
$generator->setDestinationDirectory($directory = uniqid());
})->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Path \'' . $directory . '\' of destination directory is invalid')->if($adapter->is_dir = function () {
return true;
})->then->object($generator->setDestinationDirectory('/'))->isIdenticalTo($generator)->string($generator->getDestinationDirectory())->isEqualTo('/')->object($generator->setDestinationDirectory($directory = uniqid()))->isIdenticalTo($generator)->string($generator->getDestinationDirectory())->isEqualTo($directory)->object($generator->setDestinationDirectory(($directory = uniqid()) . DIRECTORY_SEPARATOR))->isIdenticalTo($generator)->string($generator->getDestinationDirectory())->isEqualTo($directory)->if($generator->setOriginDirectory(uniqid()))->then->exception(function () use($generator) {
$generator->setDestinationDirectory($generator->getOriginDirectory());
})->isInstanceOf('mageekguy\\atoum\\exceptions\\runtime')->hasMessage('Destination directory must be different from origin directory');
}