require File.dirname(__FILE__) + '/../test_helper' class MercurialTest < Test::Unit::TestCase def setup @parser = mock("parser") @mercurial = Mercurial.new(@parser) end def test_update project = mock("project") project.expects(:local_checkout).returns("/tmp") revision = mock("revision") @mercurial.expects(:pull_command).returns("pull") @mercurial.expects(:execute).with("pull") @mercurial.expects(:update_command).with(revision).returns("update") @mercurial.expects(:execute).with("update") @mercurial.update(project, revision) end def test_latest_revision @parser.expects(:parse_log).with("log_result").returns(["foo"]) project = mock("project") project.expects(:local_checkout).returns("/tmp") @mercurial.expects(:pull_command).returns("pull") @mercurial.expects(:execute).with("pull") @mercurial.expects(:log_command).with("tip").returns("log") @mercurial.expects(:execute).with("log").returns("log_result") assert_equal("foo", @mercurial.latest_revision(project)) end def test_revisions_since rev3 = mock("rev3") rev3.expects(:number).returns(3) rev2 = mock("rev2") rev2.expects(:number).returns(2) rev1 = mock("rev1") rev1.expects(:number).returns(1) project = mock("project") project.expects(:local_checkout).returns("/tmp") @parser.expects(:parse_log).returns([rev3, rev2, rev1]) @mercurial.expects(:pull_command).returns("pull") @mercurial.expects(:execute).with("pull") @mercurial.expects(:log_command).with(1).returns("log") @mercurial.expects(:execute).with("log") assert_equal([rev3, rev2], @mercurial.revisions_since(project, 1)) end def test_update_command_without_rev assert_equal("hg update", @mercurial.update_command) end def test_update_command_with_rev revision = mock("revision") revision.expects(:number).returns(1) assert_equal("hg update 1", @mercurial.update_command(revision)) end def test_pull_command assert_equal("hg pull", @mercurial.pull_command) end def test_log_command_without_rev assert_equal("hg log -v -r tip:tip", @mercurial.log_command) end def test_log_command_without_rev assert_equal("hg log -v -r tip:3", @mercurial.log_command(3)) end end