To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / .svn / pristine / c5 / c5503b3ee9ba7623ae8cf8fbea689e4b99399e2c.svn-base @ 1297:0a574315af3e

History | View | Annotate | Download (5.12 KB)

1
require File.expand_path('../../../../../../test_helper', __FILE__)
2
begin
3
  require 'mocha'
4

    
5
  class BazaarAdapterTest < ActiveSupport::TestCase
6
    REPOSITORY_PATH = Rails.root.join('tmp/test/bazaar_repository').to_s
7
    REPOSITORY_PATH.gsub!(/\/+/, '/')
8

    
9
    if File.directory?(REPOSITORY_PATH)
10
      def setup
11
        @adapter = Redmine::Scm::Adapters::BazaarAdapter.new(
12
                                File.join(REPOSITORY_PATH, "trunk")
13
                                )
14
      end
15

    
16
      def test_scm_version
17
        to_test = { "Bazaar (bzr) 2.1.2\n"             => [2,1,2],
18
                    "2.1.1\n1.7\n1.8"                  => [2,1,1],
19
                    "2.0.1\r\n1.8.1\r\n1.9.1"          => [2,0,1]}
20
        to_test.each do |s, v|
21
          test_scm_version_for(s, v)
22
        end
23
      end
24

    
25
      def test_cat
26
        cat = @adapter.cat('directory/document.txt')
27
        assert cat =~ /Write the contents of a file as of a given revision to standard output/
28
      end
29

    
30
      def test_cat_path_invalid
31
        assert_nil @adapter.cat('invalid')
32
      end
33

    
34
      def test_cat_revision_invalid
35
        assert_nil @adapter.cat('doc-mkdir.txt', '12345678')
36
      end
37

    
38
      def test_diff_path_invalid
39
        assert_equal [], @adapter.diff('invalid', 1)
40
      end
41

    
42
      def test_diff_revision_invalid
43
        assert_equal [], @adapter.diff(nil, 12345678)
44
        assert_equal [], @adapter.diff(nil, 12345678, 87654321)
45
      end
46

    
47
      def test_annotate
48
        annotate = @adapter.annotate('doc-mkdir.txt')
49
        assert_equal 17, annotate.lines.size
50
        assert_equal '1', annotate.revisions[0].identifier
51
        assert_equal 'jsmith@', annotate.revisions[0].author
52
        assert_equal 'mkdir', annotate.lines[0]
53
      end
54

    
55
      def test_annotate_path_invalid
56
        assert_nil @adapter.annotate('invalid')
57
      end
58

    
59
      def test_annotate_revision_invalid
60
        assert_nil @adapter.annotate('doc-mkdir.txt', '12345678')
61
      end
62

    
63
      def test_branch_conf_path
64
        p = "c:\\test\\test\\"
65
        bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
66
        assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
67
        p = "c:\\test\\test\\.bzr"
68
        bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
69
        assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
70
        p = "c:\\test\\test\\.bzr\\"
71
        bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
72
        assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
73
        p = "c:\\test\\test"
74
        bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
75
        assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
76
        p = "\\\\server\\test\\test\\"
77
        bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
78
        assert_equal File.join("\\\\server\\test\\test", ".bzr", "branch", "branch.conf"), bcp
79
      end
80

    
81
      def test_append_revisions_only_true
82
        assert_equal true, @adapter.append_revisions_only
83
      end
84

    
85
      def test_append_revisions_only_false
86
        adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
87
                                File.join(REPOSITORY_PATH, "empty-branch")
88
                                )
89
        assert_equal false, adpt.append_revisions_only
90
      end
91

    
92
      def test_append_revisions_only_shared_repo
93
        adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
94
                                REPOSITORY_PATH
95
                                )
96
        assert_equal false, adpt.append_revisions_only
97
      end
98

    
99
      def test_info_not_nil
100
        assert_not_nil @adapter.info
101
      end
102

    
103
      def test_info_nil
104
        adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
105
                  "/invalid/invalid/"
106
                  )
107
        assert_nil adpt.info
108
      end
109

    
110
      def test_info
111
        info = @adapter.info
112
        assert_equal 4, info.lastrev.identifier.to_i
113
      end
114

    
115
      def test_info_emtpy
116
        adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
117
                                File.join(REPOSITORY_PATH, "empty-branch")
118
                                )
119
        assert_equal 0, adpt.info.lastrev.identifier.to_i
120
      end
121

    
122
      def test_entries_path_invalid
123
        assert_equal [], @adapter.entries('invalid')
124
      end
125

    
126
      def test_entries_revision_invalid
127
        assert_nil @adapter.entries(nil, 12345678)
128
      end
129

    
130
      def test_revisions_path_invalid
131
        assert_nil @adapter.revisions('invalid')
132
      end
133

    
134
      def test_revisions_revision_invalid
135
        assert_nil @adapter.revisions(nil, 12345678)
136
        assert_nil @adapter.revisions(nil, 12345678, 87654321)
137
      end
138

    
139
      private
140

    
141
      def test_scm_version_for(scm_command_version, version)
142
        @adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
143
        assert_equal version, @adapter.class.scm_command_version
144
      end
145
    else
146
      puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
147
      def test_fake; assert true end
148
    end
149
  end
150
rescue LoadError
151
  class BazaarMochaFake < ActiveSupport::TestCase
152
    def test_fake; assert(false, "Requires mocha to run those tests")  end
153
  end
154
end