Chris@0: require File.dirname(__FILE__) + '/../../../../../test_helper' Chris@0: begin Chris@0: require 'mocha' Chris@0: Chris@0: class MercurialAdapterTest < ActiveSupport::TestCase Chris@0: Chris@0: TEMPLATES_DIR = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATES_DIR Chris@0: TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME Chris@0: TEMPLATE_EXTENSION = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_EXTENSION Chris@0: Chris@0: REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository' Chris@0: Chris@0: def test_hgversion Chris@0: to_test = { "0.9.5" => [0,9,5], Chris@0: "1.0" => [1,0], Chris@0: "1e4ddc9ac9f7+20080325" => nil, Chris@0: "1.0.1+20080525" => [1,0,1], Chris@0: "1916e629a29d" => nil} Chris@0: Chris@0: to_test.each do |s, v| Chris@0: test_hgversion_for(s, v) Chris@0: end Chris@0: end Chris@0: Chris@0: def test_template_path Chris@0: to_test = { [0,9,5] => "0.9.5", Chris@0: [1,0] => "1.0", Chris@0: [] => "1.0", Chris@0: [1,0,1] => "1.0"} Chris@0: Chris@0: to_test.each do |v, template| Chris@0: test_template_path_for(v, template) Chris@0: end Chris@0: end Chris@0: Chris@0: private Chris@0: Chris@0: def test_hgversion_for(hgversion, version) Chris@0: Redmine::Scm::Adapters::MercurialAdapter.expects(:hgversion_from_command_line).returns(hgversion) Chris@0: adapter = Redmine::Scm::Adapters::MercurialAdapter Chris@0: assert_equal version, adapter.hgversion Chris@0: end Chris@0: Chris@0: def test_template_path_for(version, template) Chris@0: adapter = Redmine::Scm::Adapters::MercurialAdapter Chris@0: assert_equal "#{TEMPLATES_DIR}/#{TEMPLATE_NAME}-#{template}.#{TEMPLATE_EXTENSION}", adapter.template_path_for(version) Chris@0: assert File.exist?(adapter.template_path_for(version)) Chris@0: end Chris@0: end Chris@0: Chris@0: rescue LoadError Chris@0: def test_fake; assert(false, "Requires mocha to run those tests") end Chris@0: end