summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Mathiesen <marius.mathiesen@gmail.com>2009-06-17 10:59:58 +0200
committerMarius Mathiesen <marius.mathiesen@gmail.com>2009-06-17 10:59:58 +0200
commit4793b6e94da496a732262f81e77e61746e8ee98c (patch)
tree1529adbe2848dc42900b9a2ad0798e17a297cd9b
parent0d025ff36f9433217223d6fff1509765dfb4fd4e (diff)
downloadgitorious-mainline-outdated-4793b6e94da496a732262f81e77e61746e8ee98c.zip
gitorious-mainline-outdated-4793b6e94da496a732262f81e77e61746e8ee98c.tar.gz
gitorious-mainline-outdated-4793b6e94da496a732262f81e77e61746e8ee98c.tar.bz2
Make a MergeRequest know if its ending commit (still) exists
-rw-r--r--app/models/merge_request.rb4
-rw-r--r--test/unit/merge_request_test.rb11
2 files changed, 15 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index c60c696..14bdb60 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -335,6 +335,10 @@ class MergeRequest < ActiveRecord::Base
target_repository.project.oauth_consumer
end
+ def ending_commit_exists?
+ !source_repository.git.commit(ending_commit).nil?
+ end
+
def to_xml(opts = {})
info_proc = Proc.new do |options|
builder = options[:builder]
diff --git a/test/unit/merge_request_test.rb b/test/unit/merge_request_test.rb
index 279649a..9c1380e 100644
--- a/test/unit/merge_request_test.rb
+++ b/test/unit/merge_request_test.rb
@@ -197,6 +197,17 @@ class MergeRequestTest < ActiveSupport::TestCase
@merge_request.ending_commit = 'alreadymerged'
assert_equal(0, @merge_request.commits_to_be_merged.size)
end
+
+ should 'know if the specified commit exists in the source repository' do
+ source_git = mock('Source repository Git repo')
+ source_git.expects(:commit).with('ff00ddca').returns(nil)
+ source_git.expects(:commit).with('ff00ddcb').returns(mock("Ending commit"))
+ @merge_request.source_repository.stubs(:git).returns(source_git)
+ @merge_request.ending_commit = 'ff00ddca'
+ assert !@merge_request.ending_commit_exists?
+ @merge_request.ending_commit = 'ff00ddcb'
+ assert @merge_request.ending_commit_exists?
+ end
end
context 'The state machine' do