예제 #1
0
 public function testSuccess()
 {
     $results = array(new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/svn_log.xml')), ''), new ShellResult(0, '', ''));
     $commandExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/svn'));
     $vcs = new SvnVcs($commandExecutor, new RepositoryConfig());
     $vcs->checkoutRevision('1645937');
     $this->assertEquals(array(array('log', '-r', '1645937', '--xml'), array('update', '-r', '1645937')), $commandExecutor->getArguments());
 }
예제 #2
0
 public function testCorrectArguments()
 {
     $result = array(new ShellResult(0, 'master' . PHP_EOL . 'gh-pages' . PHP_EOL, ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($result, '/usr/bin/git'));
     $meta = new Meta($mockExecutor);
     $meta->getAllBranches();
     $this->assertEquals(array(array('for-each-ref', 'refs/heads/', '--format="%(refname:short)"')), $mockExecutor->getArguments());
 }
예제 #3
0
 public function testCorrectArguments()
 {
     $result = array(new ShellResult(0, 'dev-awesome-feat' . PHP_EOL . 'dev-awful-feat' . PHP_EOL, ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($result, '/usr/bin/svn'));
     $meta = new Meta($mockExecutor, new RepositoryConfig('trunk', 'branches', 'tags'));
     $meta->getAllBranches();
     $this->assertEquals(array(array('ls', 'branches')), $mockExecutor->getArguments());
 }
예제 #4
0
파일: UpdateTest.php 프로젝트: ptlis/vcs
 public function testBranchExists()
 {
     $result = array(new ShellResult(0, '', ''), new ShellResult(0, '', ''), new ShellResult(0, '', ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($result, '/usr/bin/git'));
     $vcs = new GitVcs($mockExecutor);
     $vcs->update();
     $this->assertEquals(array(array('reset', '--hard'), array('fetch'), array('rebase')), $mockExecutor->getArguments());
 }
예제 #5
0
파일: UpdateTest.php 프로젝트: ptlis/vcs
 public function testBranchExists()
 {
     $results = array(new ShellResult(0, '', ''));
     $commandExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/svn'));
     $vcs = new SvnVcs($commandExecutor, new RepositoryConfig());
     $vcs->update();
     $this->assertEquals(array(), $commandExecutor->getArguments());
 }
예제 #6
0
 public function testNotRequired()
 {
     $result = array(new ShellResult(0, 'master' . PHP_EOL, ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($result, '/usr/bin/git'));
     $vcs = new GitVcs($mockExecutor);
     $vcs->resetRevision();
     $this->assertEquals(array(), $mockExecutor->getArguments());
 }
예제 #7
0
 public function testCorrectArguments()
 {
     $result = array(new ShellResult(0, 'master' . PHP_EOL, ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($result, '/usr/bin/git'));
     $meta = new Meta($mockExecutor);
     $meta->getCurrentBranch();
     $this->assertEquals(array(array('rev-parse', '--abbrev-ref', 'HEAD')), $mockExecutor->getArguments());
 }
예제 #8
0
 public function testBranchExists()
 {
     $results = array(new ShellResult(0, '* feat-new-awesome' . PHP_EOL, ''), new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/git_branch_switched')), ''));
     $commandExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/git'));
     $vcs = new GitVcs($commandExecutor);
     $vcs->changeBranch('feat-new-awesome');
     $this->assertEquals(array(array('branch', '--list', 'feat-new-awesome'), array('checkout', 'feat-new-awesome')), $commandExecutor->getArguments());
 }
예제 #9
0
 public function testSuccess()
 {
     $results = array(new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/git_log')), ''), new ShellResult(0, 'master' . PHP_EOL, ''), new ShellResult(0, '', ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/git'));
     $vcs = new GitVcs($mockExecutor);
     $vcs->checkoutRevision('3201fb7119a132cc65b368447310c3a64e0b0916');
     $this->assertEquals(array(array('log', '--format=fuller', '-1', '3201fb7119a132cc65b368447310c3a64e0b0916'), array('rev-parse', '--abbrev-ref', 'HEAD'), array('checkout', '-b', 'ptlis-vcs-temp', '3201fb7119a132cc65b368447310c3a64e0b0916')), $mockExecutor->getArguments());
 }
예제 #10
0
 /**
  * When successfully switching to trunk there should be no commands executed
  */
 public function testTrunk()
 {
     $results = array();
     $commandExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/svn'));
     $vcs = new SvnVcs($commandExecutor, new RepositoryConfig());
     $vcs->changeBranch('trunk');
     $this->assertEquals(array(), $commandExecutor->getArguments());
 }
예제 #11
0
 public function testCorrectArguments()
 {
     $resultList = $this->getMockResultList();
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($resultList, '/usr/bin/svn'));
     $meta = new Meta($mockExecutor, new RepositoryConfig('trunk', 'branches', 'tags'));
     $meta->getAllTags();
     $this->assertEquals(array(array('ls', 'tags', '--xml'), array('log', '-r', '547', '--xml'), array('log', '-r', '612', '--xml'), array('log', '-r', '834', '--xml')), $mockExecutor->getArguments());
 }
예제 #12
0
 public function testCorrectArgumentsAndOutput()
 {
     $results = array(new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/svn_log.xml')), ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/svn'));
     $meta = new Meta($mockExecutor, new RepositoryConfig('trunk', 'branches', 'tags'));
     $revisions = $meta->getAllRevisionLogs();
     $this->assertEquals(array(array('log', '--xml')), $mockExecutor->getArguments());
     $this->assertEquals(array(new RevisionLog('1645937', 'brian', \DateTime::createFromFormat('Y-m-d\\TH:i:s.u\\Z', '2014-12-16T13:07:03.507023Z'), 'Fixed: the problem with the thing.'), new RevisionLog('1645938', 'brian', \DateTime::createFromFormat('Y-m-d\\TH:i:s.u\\Z', '2014-12-16T13:55:25.549151Z'), 'Update: move foo out of bar to make way for baz.')), $revisions);
 }
예제 #13
0
 public function testCorrectArgumentsAndOutput()
 {
     $results = array(new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/git_log')), ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/git'));
     $meta = new Meta($mockExecutor);
     $revisionList = $meta->getAllRevisionLogs();
     $this->assertEquals(array(array('log', '--format=fuller')), $mockExecutor->getArguments());
     $this->assertEquals(array(new RevisionLog('7603010b472d32c4df233244b3c0c0632c728a1d', 'ptlis <*****@*****.**>', new \DateTime('30-11-2014 18:14:24+0000'), 'Fix: Docblock type hints.'), new RevisionLog('3201fb7119a132cc65b368447310c3a64e0b0916', 'ptlis <*****@*****.**>', new \DateTime('30-11-2014 18:10:24+0000'), 'Fix: Several code-style & documentation issues.')), $revisionList);
 }
예제 #14
0
 public function testCorrectArguments()
 {
     $results = array(new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/svn_info_local.xml')), ''), new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/svn_info_remote.xml')), ''), new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/svn_log_local.xml')), ''), new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/svn_log_remote.xml')), ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/svn'));
     $meta = new Meta($mockExecutor, new RepositoryConfig());
     $revision = $meta->getLatestRevision();
     $this->assertEquals(array(array('info', '--xml'), array('info', 'http://svn.example.com/myproject/branches/1.0', '--xml'), array('log', '-r', '1645938', '--xml'), array('log', '-r', '1645938', '--xml', 'http://svn.example.com/myproject/branches/1.0')), $mockExecutor->getArguments());
     $this->assertEquals(new RevisionLog('1645938', 'brian', \DateTime::createFromFormat('Y-m-d\\TH:i:s.u\\Z', '2014-12-16T13:55:25.549151Z'), 'Update: move foo out of bar to make way for baz.'), $revision);
 }
예제 #15
0
 public function testCorrectArguments()
 {
     $results = array(new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/git_log_latest')), ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/git'));
     $meta = new Meta($mockExecutor);
     $revision = $meta->getLatestRevision();
     $this->assertEquals(array(array('log', '-n', '1')), $mockExecutor->getArguments());
     $this->assertEquals(new RevisionLog('7603010b472d32c4df233244b3c0c0632c728a1d', 'ptlis <*****@*****.**>', new \DateTime('30-11-2014 18:14:24+0000'), 'Fix: Docblock type hints.'), $revision);
 }
예제 #16
0
 public function testCorrectArguments()
 {
     $builder = new MockCommandBuilder();
     $builder = $builder->setCommand('/usr/bin/git')->addMockResult(0, 'v0.9.0' . PHP_EOL . 'v0.9.1' . PHP_EOL, '')->addMockResult(0, '1838fa95822c8008be03dbd8c4e2c14370018cf1' . PHP_EOL, '')->addMockResult(0, 'commit 1838fa95822c8008be03dbd8c4e2c14370018cf1' . PHP_EOL . 'Author:     ptlis <*****@*****.**>' . PHP_EOL . 'AuthorDate: Fri Jul 25 18:55:15 2015 +0100' . PHP_EOL . 'Commit:     ptlis <*****@*****.**>' . PHP_EOL . 'AuthorDate: Fri Jul 25 18:55:15 2015 +0100' . PHP_EOL . '' . PHP_EOL . '    Rework the thingy' . PHP_EOL, '')->addMockResult(0, '7f202db7c7f1302d8ced7fa6fb5307320e016a3f' . PHP_EOL, '')->addMockResult(0, 'commit 7f202db7c7f1302d8ced7fa6fb5307320e016a3f' . PHP_EOL . 'Author:     ptlis <*****@*****.**>' . PHP_EOL . 'AuthorDate: Fri Jul 31 12:28:03 2015 +0100' . PHP_EOL . 'Commit:     ptlis <*****@*****.**>' . PHP_EOL . 'CommitDate: Fri Jul 31 12:28:03 2015 +0100' . PHP_EOL . '' . PHP_EOL . '    Update the FooWidget to 3.1415' . PHP_EOL, '');
     $mockExecutor = new MockCommandExecutor($builder);
     $meta = new Meta($mockExecutor);
     $meta->getAllTags();
     $this->assertEquals(array(array('tag'), array('rev-list', '-1', 'v0.9.0'), array('log', '--format=fuller', '-1', '1838fa95822c8008be03dbd8c4e2c14370018cf1'), array('rev-list', '-1', 'v0.9.1'), array('log', '--format=fuller', '-1', '7f202db7c7f1302d8ced7fa6fb5307320e016a3f')), $mockExecutor->getArguments());
 }
예제 #17
0
 public function testCorrectArguments()
 {
     $builder = new MockCommandBuilder();
     $builder = $builder->setCommand('/usr/bin/svn')->addMockResult(0, file_get_contents(__DIR__ . '/data/svn_diff'), '');
     $mockExecutor = new MockCommandExecutor($builder);
     $meta = new Meta($mockExecutor, new RepositoryConfig());
     $revision = $meta->getRevision(new RevisionLog('1695913', 'mrumph', new \DateTime('2015-08-14 14:51:38 +0100'), 'Clarify RewriteRule example in mod_proxy doc'));
     $this->assertEquals(array(array('diff', '-c', '1695913')), $mockExecutor->getArguments());
     $this->assertInstanceOf('\\ptlis\\Vcs\\Shared\\Revision', $revision);
     $this->assertInstanceOf('\\ptlis\\Vcs\\Shared\\RevisionLog', $revision->getLog());
     $this->assertInstanceOf('\\ptlis\\DiffParser\\Changeset', $revision->getChangeset());
 }
예제 #18
0
 public function testCorrectArguments()
 {
     $builder = new MockCommandBuilder();
     $builder = $builder->setCommand('/usr/bin/git')->addMockResult(0, file_get_contents(__DIR__ . '/data/git_diff'), '');
     $mockExecutor = new MockCommandExecutor($builder);
     $meta = new Meta($mockExecutor);
     $revision = $meta->getRevision(new RevisionLog('c6dae50913150a272bfe241bb7fb47935eba4bee', 'ptlis', new \DateTime('Sat, 14 Feb 2015 18:43:51 +0000'), 'Fix: Use stand-alone command package for executing shell commands.'));
     $this->assertEquals(array(array('format-patch', '-1', '--stdout', 'c6dae50913150a272bfe241bb7fb47935eba4bee')), $mockExecutor->getArguments());
     $this->assertInstanceOf('\\ptlis\\Vcs\\Shared\\Revision', $revision);
     $this->assertInstanceOf('\\ptlis\\Vcs\\Shared\\RevisionLog', $revision->getLog());
     $this->assertInstanceOf('\\ptlis\\DiffParser\\Changeset', $revision->getChangeset());
 }
예제 #19
0
 public function testCorrectArgumentsAndOutput()
 {
     $results = array(new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/git_log')), ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/git'));
     $meta = new Meta($mockExecutor);
     $actualRevision = $meta->getRevisionLog('7603010b472d32c4df233244b3c0c0632c728a1d');
     $this->assertEquals(array(array('log', '--format=fuller', '-1', '7603010b472d32c4df233244b3c0c0632c728a1d')), $mockExecutor->getArguments());
     $this->assertEquals(new RevisionLog('7603010b472d32c4df233244b3c0c0632c728a1d', 'ptlis <*****@*****.**>', new \DateTime('30-11-2014 18:14:24+0000'), 'Fix: Docblock type hints.'), $actualRevision);
     // Check getters
     $this->assertEquals('7603010b472d32c4df233244b3c0c0632c728a1d', $actualRevision->getIdentifier());
     $this->assertEquals(new \DateTime('30-11-2014 18:14:24+0000'), $actualRevision->getCreated());
     $this->assertEquals('ptlis <*****@*****.**>', $actualRevision->getAuthor());
     $this->assertEquals('Fix: Docblock type hints.', $actualRevision->getMessage());
 }
예제 #20
0
 public function testCorrectArgumentsAndOutput()
 {
     $results = array(new ShellResult(0, file_get_contents(realpath(__DIR__ . '/data/svn_log_single.xml')), ''));
     $mockExecutor = new MockCommandExecutor(new MockCommandBuilder($results, '/usr/bin/svn'));
     $meta = new Meta($mockExecutor, new RepositoryConfig());
     $actualRevision = $meta->getRevisionLog('1645938');
     $this->assertEquals(array(array('log', '-r', '1645938', '--xml')), $mockExecutor->getArguments());
     $expectedRevision = new RevisionLog('1645938', 'brian', \DateTime::createFromFormat('Y-m-d\\TH:i:s.u\\Z', '2014-12-16T13:55:25.549151Z'), 'Update: move foo out of bar to make way for baz.');
     $this->assertEquals($expectedRevision, $actualRevision);
     // Check getters
     $this->assertEquals($expectedRevision->getIdentifier(), $actualRevision->getIdentifier());
     $this->assertEquals($expectedRevision->getCreated(), $actualRevision->getCreated());
     $this->assertEquals($expectedRevision->getAuthor(), $actualRevision->getAuthor());
     $this->assertEquals($expectedRevision->getMessage(), $actualRevision->getMessage());
 }