Skip to content

Commit

Permalink
Added forget command
Browse files Browse the repository at this point in the history
  • Loading branch information
siad007 committed Sep 14, 2014
1 parent 76a3272 commit 0980e61
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 0 deletions.
76 changes: 76 additions & 0 deletions src/Command/ForgetCommand.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<?php
/**
* VersionControl_HG
* Simple OO implementation for Mercurial.
*
* PHP Version 5.4
*
* @copyright 2014 Siad Ardroumli
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://siad007.github.io/versioncontrol_hg
*/

namespace Siad007\VersionControl\HG\Command;

/**
* Simple OO implementation for Mercurial.
*
* @author Siad Ardroumli <[email protected]>
*
* @method array getInclude()
* @method void addInclude(string $pattern)
* @method array getExclude()
* @method void addExclude(string $pattern)
*/
class ForgetCommand extends AbstractCommand
{
/**
* Available arguments for this command.
*
* @var array $arguments
*/
protected $arguments = array(
'file' => array()
);

/**
* {@inheritdoc}
*
* @var mixed $options
*/
protected $options = array(
'--include' => array(),
'--exclude' => array()
);

/**
* @return array
*/
public function getFile()
{
return $this->arguments['file'];
}

/**
* @param string $file
*
* @return void
*/
public function addFile($file)
{
$this->arguments['file'][] = escapeshellarg($file);
}

/**
* {@inheritdoc}
*/
public function __toString()
{
return sprintf(
"%s%s %s",
$this->name,
$this->assembleOptionString(),
implode(' ', $this->arguments['file'])
);
}
}
1 change: 1 addition & 0 deletions src/Factory.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
* @method \Siad007\VersionControl\HG\Command\CloneCommand createClone(array $options = array)
* @method \Siad007\VersionControl\HG\Command\CommitCommand createCommit(array $options = array)
* @method \Siad007\VersionControl\HG\Command\CopyCommand createCopy(array $options = array)
* @method \Siad007\VersionControl\HG\Command\ForgetCommand createForget(array $options = array)
* @method \Siad007\VersionControl\HG\Command\HeadsCommand createHeads(array $options = array)
* @method \Siad007\VersionControl\HG\Command\InitCommand createInit(array $options = array)
* @method \Siad007\VersionControl\HG\Command\LocateCommand createLocate(array $options = array)
Expand Down
40 changes: 40 additions & 0 deletions tests/Command/ForgetCommandTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php
/**
* VersionControl_HG
* Simple OO implementation for Mercurial.
*
* PHP Version 5.4
*
* @copyright 2014 Siad Ardroumli
* @license http://www.opensource.org/licenses/mit-license.php MIT
* @link http://siad007.github.io/versioncontrol_hg
*/

namespace Siad007\VersionControl\HG\Tests\Command;

use Siad007\VersionControl\HG\Factory;

class ForgetCommandTest extends \PHPUnit_Framework_TestCase
{
/**
* @test
*/
public function forgetCommand()
{
$forgetCmd = Factory::createForget();
$forgetCmd->addFile('C:\\xampp\\file1\\');
$forgetCmd->addFile('C:\\xampp\\file2\\');
$forgetCmd->addInclude('includePattern');
$forgetCmd->addExclude('excludePattern');

$file = '\'C:\xampp\file1\\\' \'C:\xampp\file2\\\'';
$expected = 'hg forget --include includePattern --exclude excludePattern ';

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$file = str_replace("'", '"', $file);
}

$this->assertSame($file, implode(' ', $forgetCmd->getFile()));
$this->assertSame($expected . $file, $forgetCmd->asString());
}
}

0 comments on commit 0980e61

Please sign in to comment.