aboutsummaryrefslogtreecommitdiffstats
path: root/library/kzykhys/git/test/PHPGit/Command/MergeCommandTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/kzykhys/git/test/PHPGit/Command/MergeCommandTest.php')
-rw-r--r--library/kzykhys/git/test/PHPGit/Command/MergeCommandTest.php101
1 files changed, 101 insertions, 0 deletions
diff --git a/library/kzykhys/git/test/PHPGit/Command/MergeCommandTest.php b/library/kzykhys/git/test/PHPGit/Command/MergeCommandTest.php
new file mode 100644
index 000000000..208461523
--- /dev/null
+++ b/library/kzykhys/git/test/PHPGit/Command/MergeCommandTest.php
@@ -0,0 +1,101 @@
+<?php
+
+use PHPGit\Git;
+use Symfony\Component\Filesystem\Filesystem;
+
+require_once __DIR__ . '/../BaseTestCase.php';
+
+class MergeCommandTest extends BaseTestCase
+{
+
+ public function testMerge()
+ {
+ $filesystem = new Filesystem();
+
+ $git = new Git();
+ $git->init($this->directory);
+ $git->setRepository($this->directory);
+
+ $filesystem->dumpFile($this->directory . '/test.txt', 'foo');
+ $git->add('test.txt');
+ $git->commit('master');
+
+ $git->checkout->create('develop');
+ $filesystem->dumpFile($this->directory . '/test.txt', 'bar');
+ $git->add('test.txt');
+ $git->commit('develop');
+
+ $git->checkout('master');
+
+ $this->assertEquals('foo', file_get_contents($this->directory . '/test.txt'));
+
+ $git->merge('develop');
+
+ $this->assertEquals('bar', file_get_contents($this->directory . '/test.txt'));
+ }
+
+ /**
+ * @expectedException \PHPGit\Exception\GitException
+ */
+ public function testMergeFail()
+ {
+ $filesystem = new Filesystem();
+
+ $git = new Git();
+ $git->init($this->directory);
+ $git->setRepository($this->directory);
+
+ // branch:master
+ $filesystem->dumpFile($this->directory . '/test.txt', 'foo');
+ $git->add('test.txt');
+ $git->commit('master');
+
+ // branch:develop
+ $git->checkout->create('develop');
+ $filesystem->dumpFile($this->directory . '/test.txt', 'bar');
+ $git->add('test.txt');
+ $git->commit('develop');
+
+ // branch:master
+ $git->checkout('master');
+ $filesystem->dumpFile($this->directory . '/test.txt', 'baz');
+ $git->merge('develop');
+ }
+
+ public function testMergeAbort()
+ {
+ $filesystem = new Filesystem();
+
+ $git = new Git();
+ $git->init($this->directory);
+ $git->setRepository($this->directory);
+
+ // branch:master
+ $filesystem->dumpFile($this->directory . '/test.txt', 'foo');
+ $git->add('test.txt');
+ $git->commit('master');
+
+ // branch:develop
+ $git->checkout->create('develop');
+ $filesystem->dumpFile($this->directory . '/test.txt', 'bar');
+ $git->add('test.txt');
+ $git->commit('develop');
+
+ // branch:master
+ $git->checkout('master');
+ $filesystem->dumpFile($this->directory . '/test.txt', 'baz');
+ $git->add('test.txt');
+ $git->commit('master');
+
+ try {
+ $git->merge('develop');
+ $this->fail('$git->merge("develop") should fail');
+ } catch (Exception $e) {
+ }
+
+ $git->merge->abort();
+
+ $this->assertEquals('baz', file_get_contents($this->directory . '/test.txt'));
+ }
+
+} \ No newline at end of file