ohloh_scm / branches / master / test / unit / hg_commits_test.rb
history
require File.dirname(__FILE__) + '/../test_helper'
module Scm::Adapters
class HgCommitsTest < Scm::Test
def test_commit
with_hg_repository('hg') do |hg|
assert_equal 4, hg.commit_count
assert_equal 2, hg.commit_count('b14fa4692f949940bd1e28da6fb4617de2615484')
assert_equal 0, hg.commit_count('75532c1e1f1de55c2271f6fd29d98efbe35397c4')
assert_equal ['01101d8ef3cea7da9ac6e9a226d645f4418f05c9',
'b14fa4692f949940bd1e28da6fb4617de2615484',
'468336c6671cbc58237a259d1b7326866afc2817',
'75532c1e1f1de55c2271f6fd29d98efbe35397c4'], hg.commit_tokens
assert_equal ['75532c1e1f1de55c2271f6fd29d98efbe35397c4'],
hg.commit_tokens('468336c6671cbc58237a259d1b7326866afc2817')
assert_equal [], hg.commit_tokens('75532c1e1f1de55c2271f6fd29d98efbe35397c4')
assert_equal ['01101d8ef3cea7da9ac6e9a226d645f4418f05c9',
'b14fa4692f949940bd1e28da6fb4617de2615484',
'468336c6671cbc58237a259d1b7326866afc2817',
'75532c1e1f1de55c2271f6fd29d98efbe35397c4'], hg.commits.collect { |c| c.token }
assert_equal ['75532c1e1f1de55c2271f6fd29d98efbe35397c4'],
hg.commits('468336c6671cbc58237a259d1b7326866afc2817').collect { |c| c.token }
# Check that the diffs are not populated
assert_equal [], hg.commits('468336c6671cbc58237a259d1b7326866afc2817').first.diffs
assert_equal [], hg.commits('75532c1e1f1de55c2271f6fd29d98efbe35397c4')
end
end
def test_each_commit
commits = []
with_hg_repository('hg') do |hg|
hg.each_commit do |c|
assert c.token.length == 40
assert c.committer_name
assert c.committer_date.is_a?(Time)
assert c.message.length > 0
assert c.diffs.any?
# Check that the diffs are populated
c.diffs.each do |d|
assert d.action =~ /^[MAD]$/
assert d.path.length > 0
end
commits << c
end
assert !FileTest.exist?(hg.log_filename) # Make sure we cleaned up after ourselves
# Verify that we got the commits in forward chronological order
assert_equal ['01101d8ef3cea7da9ac6e9a226d645f4418f05c9',
'b14fa4692f949940bd1e28da6fb4617de2615484',
'468336c6671cbc58237a259d1b7326866afc2817',
'75532c1e1f1de55c2271f6fd29d98efbe35397c4'], commits.collect { |c| c.token }
end
end
end
end
