/** * Asserts that a merge from $fromBranch ends with a clean merge (not a conflict) * * @param string $mergeCommand Merge command to run and assert on */ public static function assertCleanMerge($mergeCommand) { $exitCode = MergeDriverTestUtils::runGitCommand($mergeCommand); if ($exitCode == 1) { PHPUnit_Framework_Assert::fail('Merge ended with a conflict, clean merge was expected'); } else { if ($exitCode != 0) { PHPUnit_Framework_Assert::fail('Merge ended with an unexpected exit code ' . $exitCode); } } }
private function prepareTestRepositoryHistory() { for ($i = 0; $i < self::ITERATIONS; $i++) { MergeDriverTestUtils::writeIniFile('file' . $i . '.ini', '2011-11-11 11:11:11'); } MergeDriverTestUtils::commit('Initial commit to Ancestor'); MergeDriverTestUtils::runGitCommand('git checkout -b test-branch'); for ($i = 0; $i < self::ITERATIONS; $i++) { MergeDriverTestUtils::writeIniFile('file' . $i . '.ini', '2012-12-12 12:12:12', 'Custom content'); } MergeDriverTestUtils::commit('Commit to branch'); MergeDriverTestUtils::runGitCommand('git checkout master'); for ($i = 0; $i < self::ITERATIONS; $i++) { MergeDriverTestUtils::writeIniFile('file' . $i . '.ini', '2013-03-03 13:13:13'); } MergeDriverTestUtils::commit('Commit to master'); }
/** * * @test * @dataProvider driverProvider * @param string $driver */ public function changesOnAdjacentLinesMergeWithoutConflict($driver) { if (DIRECTORY_SEPARATOR == '\\' && $driver == MergeDriverInstaller::DRIVER_BASH) { $this->markTestSkipped('No Bash on Windows.'); return; } $this->installMergeDriver($driver); $date = '2011-11-11 11:11:11'; MergeDriverTestUtils::writeIniFile('file.ini', $date, 'Default content', 'Default title'); MergeDriverTestUtils::commit('Initial commit to common ancestor'); MergeDriverTestUtils::runGitCommand('git checkout -b test-branch'); MergeDriverTestUtils::writeIniFile('file.ini', $date, 'Default content', 'CHANGED TITLE'); MergeDriverTestUtils::commit('Commit to branch'); MergeDriverTestUtils::runGitCommand('git checkout master'); MergeDriverTestUtils::writeIniFile('file.ini', $date, 'CHANGED CONTENT', 'Default title'); MergeDriverTestUtils::commit('Commit to master'); MergeAsserter::assertCleanMerge('git merge test-branch'); }