1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
require File.expand_path('../../../../../../test_helper', __FILE__)
begin
require 'mocha'
class BazaarAdapterTest < ActiveSupport::TestCase
REPOSITORY_PATH = Rails.root.join('tmp/test/bazaar_repository').to_s
REPOSITORY_PATH.gsub!(/\/+/, '/')
if File.directory?(REPOSITORY_PATH)
def setup
@adapter = Redmine::Scm::Adapters::BazaarAdapter.new(
File.join(REPOSITORY_PATH, "trunk")
)
end
def test_scm_version
to_test = { "Bazaar (bzr) 2.1.2\n" => [2,1,2],
"2.1.1\n1.7\n1.8" => [2,1,1],
"2.0.1\r\n1.8.1\r\n1.9.1" => [2,0,1]}
to_test.each do |s, v|
test_scm_version_for(s, v)
end
end
def test_cat
cat = @adapter.cat('directory/document.txt')
assert cat =~ /Write the contents of a file as of a given revision to standard output/
end
def test_cat_path_invalid
assert_nil @adapter.cat('invalid')
end
def test_cat_revision_invalid
assert_nil @adapter.cat('doc-mkdir.txt', '12345678')
end
def test_diff_path_invalid
assert_equal [], @adapter.diff('invalid', 1)
end
def test_diff_revision_invalid
assert_equal [], @adapter.diff(nil, 12345678)
assert_equal [], @adapter.diff(nil, 12345678, 87654321)
end
def test_annotate
annotate = @adapter.annotate('doc-mkdir.txt')
assert_equal 17, annotate.lines.size
assert_equal '1', annotate.revisions[0].identifier
assert_equal 'jsmith@', annotate.revisions[0].author
assert_equal 'mkdir', annotate.lines[0]
end
def test_annotate_path_invalid
assert_nil @adapter.annotate('invalid')
end
def test_annotate_revision_invalid
assert_nil @adapter.annotate('doc-mkdir.txt', '12345678')
end
def test_branch_conf_path
p = "c:\\test\\test\\"
bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
p = "c:\\test\\test\\.bzr"
bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
p = "c:\\test\\test\\.bzr\\"
bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
p = "c:\\test\\test"
bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
assert_equal File.join("c:\\test\\test", ".bzr", "branch", "branch.conf"), bcp
p = "\\\\server\\test\\test\\"
bcp = Redmine::Scm::Adapters::BazaarAdapter.branch_conf_path(p)
assert_equal File.join("\\\\server\\test\\test", ".bzr", "branch", "branch.conf"), bcp
end
def test_append_revisions_only_true
assert_equal true, @adapter.append_revisions_only
end
def test_append_revisions_only_false
adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
File.join(REPOSITORY_PATH, "empty-branch")
)
assert_equal false, adpt.append_revisions_only
end
def test_append_revisions_only_shared_repo
adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
REPOSITORY_PATH
)
assert_equal false, adpt.append_revisions_only
end
def test_info_not_nil
assert_not_nil @adapter.info
end
def test_info_nil
adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
"/invalid/invalid/"
)
assert_nil adpt.info
end
def test_info
info = @adapter.info
assert_equal 4, info.lastrev.identifier.to_i
end
def test_info_emtpy
adpt = Redmine::Scm::Adapters::BazaarAdapter.new(
File.join(REPOSITORY_PATH, "empty-branch")
)
assert_equal 0, adpt.info.lastrev.identifier.to_i
end
def test_entries_path_invalid
assert_equal [], @adapter.entries('invalid')
end
def test_entries_revision_invalid
assert_nil @adapter.entries(nil, 12345678)
end
def test_revisions_path_invalid
assert_nil @adapter.revisions('invalid')
end
def test_revisions_revision_invalid
assert_nil @adapter.revisions(nil, 12345678)
assert_nil @adapter.revisions(nil, 12345678, 87654321)
end
private
def test_scm_version_for(scm_command_version, version)
@adapter.class.expects(:scm_version_from_command_line).returns(scm_command_version)
assert_equal version, @adapter.class.scm_command_version
end
else
puts "Bazaar test repository NOT FOUND. Skipping unit tests !!!"
def test_fake; assert true end
end
end
rescue LoadError
class BazaarMochaFake < ActiveSupport::TestCase
def test_fake; assert(false, "Requires mocha to run those tests") end
end
end
|