diff options
author | Marius Mathiesen <marius.mathiesen@gmail.com> | 2009-06-17 10:59:58 +0200 |
---|---|---|
committer | Marius Mathiesen <marius.mathiesen@gmail.com> | 2009-06-17 10:59:58 +0200 |
commit | 4793b6e94da496a732262f81e77e61746e8ee98c (patch) | |
tree | 1529adbe2848dc42900b9a2ad0798e17a297cd9b | |
parent | 0d025ff36f9433217223d6fff1509765dfb4fd4e (diff) | |
download | gitorious-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.rb | 4 | ||||
-rw-r--r-- | test/unit/merge_request_test.rb | 11 |
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 |