From f7448e39e7855dc2756a0c14a39aa622ce27c29e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Monta=C3=B1ez?= Date: Sat, 11 Feb 2017 01:53:22 -0300 Subject: [PATCH] [Nostromo] Refactor Composer SelfUpdate --- CHANGELOG.md | 1 + src/Task/BuiltIn/Composer/SelfUpdateTask.php | 4 +-- .../BuiltIn/Composer/SelfUpdateTaskTest.php | 34 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0be809f..f327780 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ CHANGELOG for 3.x ================= * 3.0.X (2017-XX-XX) + * Add new Composer task, to update phar (composer/self-update) * [#344] Allow to flag Filesystem tasks * [PR#346] Add new File System task, to change file's modes (fs/chmod) * [BUGFIX] [PR#342] Ignore empty exclude lines diff --git a/src/Task/BuiltIn/Composer/SelfUpdateTask.php b/src/Task/BuiltIn/Composer/SelfUpdateTask.php index e5f2245..ea11164 100644 --- a/src/Task/BuiltIn/Composer/SelfUpdateTask.php +++ b/src/Task/BuiltIn/Composer/SelfUpdateTask.php @@ -52,7 +52,7 @@ class SelfUpdateTask extends AbstractTask throw new SkipException(); } - $cmdUpdate = sprintf('%s self-update %s', $options['path'], $options['release']); + $cmdUpdate = sprintf('%s self-update %s', $options['path'], $options['version']); /** @var Process $process */ $process = $this->runtime->runCommand(trim($cmdUpdate)); @@ -83,7 +83,7 @@ class SelfUpdateTask extends AbstractTask protected function getOptions() { $options = array_merge( - ['path' => 'composer', 'release' => '', 'days' => 60], + ['path' => 'composer', 'version' => '', 'days' => 60], $this->runtime->getMergedOption('composer'), $this->options ); diff --git a/tests/Task/BuiltIn/Composer/SelfUpdateTaskTest.php b/tests/Task/BuiltIn/Composer/SelfUpdateTaskTest.php index 72c5543..6d8abee 100644 --- a/tests/Task/BuiltIn/Composer/SelfUpdateTaskTest.php +++ b/tests/Task/BuiltIn/Composer/SelfUpdateTaskTest.php @@ -104,6 +104,40 @@ class SelfUpdateTaskTest extends TestCase } } + public function testSelfUpdateMustUpdateToVersionTask() + { + $runtime = new RuntimeMockup(); + $runtime->setConfiguration(['environments' => ['test' => []]]); + $runtime->setEnvironment('test'); + + $task = new SelfUpdateTask(); + $task->setOptions(['path' => 'composer.phar', 'version' => '1.2.0']); + $task->setRuntime($runtime); + + try { + $result = $task->execute(); + $this->assertTrue($result, 'Result should be successful'); + } catch (Exception $exception) { + if ($exception instanceof SkipException) { + $this->assertTrue(false, 'Update should not have been skipped'); + } + } + + $ranCommands = $runtime->getRanCommands(); + $testCase = array( + 0 => 'composer.phar --version', + 1 => 'composer.phar self-update 1.2.0', + ); + + // Check total of Executed Commands + $this->assertEquals(count($testCase), count($ranCommands)); + + // Check Generated Commands + foreach ($testCase as $index => $command) { + $this->assertEquals($command, $ranCommands[$index]); + } + } + public function testSelfUpdateWrongOutputTask() { $runtime = new RuntimeMockup();