mirror of https://github.com/hauke68/Magallanes
Jakub Turek
10 years ago
1 changed files with 126 additions and 0 deletions
@ -0,0 +1,126 @@
|
||||
<?php |
||||
|
||||
namespace MageTest\Command\BuiltIn; |
||||
|
||||
use Mage\Command\BuiltIn\UnlockCommand; |
||||
use MageTest\TestHelper\BaseTest; |
||||
use malkusch\phpmock\MockBuilder; |
||||
|
||||
/** |
||||
* Class UnlockCommandTest |
||||
* @package MageTest\Command\BuiltIn |
||||
* @coversDefaultClass Mage\Command\BuiltIn\UnlockCommand |
||||
* @uses malkusch\phpmock\MockBuilder |
||||
* @uses malkusch\phpmock\Mock |
||||
* @uses Mage\Command\AbstractCommand |
||||
* @uses Mage\Console |
||||
* @uses Mage\Console\Colors |
||||
*/ |
||||
class UnlockCommandTest extends BaseTest |
||||
{ |
||||
/** |
||||
* @var UnlockCommand |
||||
*/ |
||||
private $unlockCommand; |
||||
|
||||
public static $isUnlinkCalled; |
||||
public static $fileExistsResult; |
||||
public static $isFileExists; |
||||
|
||||
/** |
||||
* @before |
||||
*/ |
||||
public function before() |
||||
{ |
||||
$this->unlockCommand = new UnlockCommand(); |
||||
|
||||
self::$isUnlinkCalled = false; |
||||
self::$fileExistsResult = false; |
||||
self::$isFileExists = false; |
||||
|
||||
$mockBuilder = new MockBuilder(); |
||||
$fileExistsMock = $mockBuilder |
||||
->setName('file_exists') |
||||
->setNamespace('Mage\Command\BuiltIn') |
||||
->setFunction( |
||||
function ($filePath) { |
||||
UnlockCommandTest::$fileExistsResult = $filePath; |
||||
return UnlockCommandTest::$isFileExists; |
||||
} |
||||
) |
||||
->build(); |
||||
$unlinkMock = $mockBuilder |
||||
->setName('unlink') |
||||
->setNamespace('Mage\Command\BuiltIn') |
||||
->setFunction( |
||||
function () { |
||||
UnlockCommandTest::$isUnlinkCalled = true; |
||||
} |
||||
) |
||||
->build(); |
||||
$getCwdMock = $mockBuilder |
||||
->setNamespace('Mage\Command\BuiltIn') |
||||
->setName('getcwd') |
||||
->setFunction( |
||||
function () { |
||||
return ''; |
||||
} |
||||
) |
||||
->build(); |
||||
|
||||
$fileExistsMock->disable(); |
||||
$unlinkMock->disable(); |
||||
$getCwdMock->disable(); |
||||
|
||||
|
||||
$fileExistsMock->enable(); |
||||
$unlinkMock->enable(); |
||||
$getCwdMock->enable(); |
||||
|
||||
$configMock = $this->getMock('Mage\Config'); |
||||
$configMock->expects($this->atLeastOnce()) |
||||
->method('getEnvironment') |
||||
->willReturn('production'); |
||||
$this->unlockCommand->setConfig($configMock); |
||||
|
||||
$this->setUpConsoleStatics(); |
||||
} |
||||
|
||||
/** |
||||
* @covers ::run |
||||
*/ |
||||
public function testRun() |
||||
{ |
||||
$expectedOutput = "\tUnlocked deployment to production environment\n\n"; |
||||
$this->expectOutputString($expectedOutput); |
||||
$expectedLockFilePath = '/.mage/production.lock'; |
||||
|
||||
self::$isFileExists = true; |
||||
|
||||
$actualExitCode = $this->unlockCommand->run(); |
||||
$expectedExitCode = 0; |
||||
|
||||
$this->assertTrue(self::$isUnlinkCalled); |
||||
$this->assertEquals($expectedExitCode, $actualExitCode); |
||||
$this->assertEquals($expectedLockFilePath, self::$fileExistsResult); |
||||
} |
||||
|
||||
/** |
||||
* @covers ::run |
||||
*/ |
||||
public function testRunIfFileNotExist() |
||||
{ |
||||
$expectedOutput = "\tUnlocked deployment to production environment\n\n"; |
||||
$this->expectOutputString($expectedOutput); |
||||
$expectedLockFilePath = '/.mage/production.lock'; |
||||
|
||||
self::$isFileExists = false; |
||||
|
||||
$actualExitCode = $this->unlockCommand->run(); |
||||
$expectedExitCode = 0; |
||||
|
||||
$this->assertFalse(self::$isUnlinkCalled); |
||||
$this->assertEquals($expectedExitCode, $actualExitCode); |
||||
$this->assertEquals($expectedLockFilePath, self::$fileExistsResult); |
||||
} |
||||
} |
Loading…
Reference in new issue