##// END OF EJS Templates
scm: mercurial: split unit model test setup whether repository required or not...
Toshi MARUYAMA -
r8842:d004d83183be
parent child
Show More
@@ -1,342 +1,344
1 # Redmine - project management software
1 # Redmine - project management software
2 # Copyright (C) 2006-2011 Jean-Philippe Lang
2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.expand_path('../../test_helper', __FILE__)
18 require File.expand_path('../../test_helper', __FILE__)
19
19
20 class RepositoryMercurialTest < ActiveSupport::TestCase
20 class RepositoryMercurialTest < ActiveSupport::TestCase
21 fixtures :projects
21 fixtures :projects
22
22
23 REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s
23 REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s
24 NUM_REV = 32
24 NUM_REV = 32
25 CHAR_1_HEX = "\xc3\x9c"
25 CHAR_1_HEX = "\xc3\x9c"
26
26
27 def setup
28 @project = Project.find(3)
29 @repository = Repository::Mercurial.create(
30 :project => @project,
31 :url => REPOSITORY_PATH,
32 :path_encoding => 'ISO-8859-1'
33 )
34 assert @repository
35 @char_1 = CHAR_1_HEX.dup
36 @tag_char_1 = "tag-#{CHAR_1_HEX}-00"
37 @branch_char_0 = "branch-#{CHAR_1_HEX}-00"
38 @branch_char_1 = "branch-#{CHAR_1_HEX}-01"
39 if @char_1.respond_to?(:force_encoding)
40 @char_1.force_encoding('UTF-8')
41 @tag_char_1.force_encoding('UTF-8')
42 @branch_char_0.force_encoding('UTF-8')
43 @branch_char_1.force_encoding('UTF-8')
44 end
45 end
46
27 if File.directory?(REPOSITORY_PATH)
47 if File.directory?(REPOSITORY_PATH)
28 def setup
48 def test_scm_available
29 klass = Repository::Mercurial
49 klass = Repository::Mercurial
30 assert_equal "Mercurial", klass.scm_name
50 assert_equal "Mercurial", klass.scm_name
31 assert klass.scm_adapter_class
51 assert klass.scm_adapter_class
32 assert_not_equal "", klass.scm_command
52 assert_not_equal "", klass.scm_command
33 assert_equal true, klass.scm_available
53 assert_equal true, klass.scm_available
34
35 @project = Project.find(3)
36 @repository = Repository::Mercurial.create(
37 :project => @project,
38 :url => REPOSITORY_PATH,
39 :path_encoding => 'ISO-8859-1'
40 )
41 assert @repository
42 @char_1 = CHAR_1_HEX.dup
43 @tag_char_1 = "tag-#{CHAR_1_HEX}-00"
44 @branch_char_0 = "branch-#{CHAR_1_HEX}-00"
45 @branch_char_1 = "branch-#{CHAR_1_HEX}-01"
46 if @char_1.respond_to?(:force_encoding)
47 @char_1.force_encoding('UTF-8')
48 @tag_char_1.force_encoding('UTF-8')
49 @branch_char_0.force_encoding('UTF-8')
50 @branch_char_1.force_encoding('UTF-8')
51 end
52 end
54 end
53
55
54 def test_fetch_changesets_from_scratch
56 def test_fetch_changesets_from_scratch
55 assert_equal 0, @repository.changesets.count
57 assert_equal 0, @repository.changesets.count
56 @repository.fetch_changesets
58 @repository.fetch_changesets
57 @project.reload
59 @project.reload
58 assert_equal NUM_REV, @repository.changesets.count
60 assert_equal NUM_REV, @repository.changesets.count
59 assert_equal 46, @repository.changes.count
61 assert_equal 46, @repository.changes.count
60 assert_equal "Initial import.\nThe repository contains 3 files.",
62 assert_equal "Initial import.\nThe repository contains 3 files.",
61 @repository.changesets.find_by_revision('0').comments
63 @repository.changesets.find_by_revision('0').comments
62 end
64 end
63
65
64 def test_fetch_changesets_incremental
66 def test_fetch_changesets_incremental
65 assert_equal 0, @repository.changesets.count
67 assert_equal 0, @repository.changesets.count
66 @repository.fetch_changesets
68 @repository.fetch_changesets
67 @project.reload
69 @project.reload
68 assert_equal NUM_REV, @repository.changesets.count
70 assert_equal NUM_REV, @repository.changesets.count
69 # Remove changesets with revision > 2
71 # Remove changesets with revision > 2
70 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2}
72 @repository.changesets.find(:all).each {|c| c.destroy if c.revision.to_i > 2}
71 @project.reload
73 @project.reload
72 assert_equal 3, @repository.changesets.count
74 assert_equal 3, @repository.changesets.count
73
75
74 @repository.fetch_changesets
76 @repository.fetch_changesets
75 @project.reload
77 @project.reload
76 assert_equal NUM_REV, @repository.changesets.count
78 assert_equal NUM_REV, @repository.changesets.count
77 end
79 end
78
80
79 def test_isodatesec
81 def test_isodatesec
80 # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
82 # Template keyword 'isodatesec' supported in Mercurial 1.0 and higher
81 if @repository.scm.class.client_version_above?([1, 0])
83 if @repository.scm.class.client_version_above?([1, 0])
82 assert_equal 0, @repository.changesets.count
84 assert_equal 0, @repository.changesets.count
83 @repository.fetch_changesets
85 @repository.fetch_changesets
84 @project.reload
86 @project.reload
85 assert_equal NUM_REV, @repository.changesets.count
87 assert_equal NUM_REV, @repository.changesets.count
86 rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52)
88 rev0_committed_on = Time.gm(2007, 12, 14, 9, 22, 52)
87 assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on
89 assert_equal @repository.changesets.find_by_revision('0').committed_on, rev0_committed_on
88 end
90 end
89 end
91 end
90
92
91 def test_changeset_order_by_revision
93 def test_changeset_order_by_revision
92 assert_equal 0, @repository.changesets.count
94 assert_equal 0, @repository.changesets.count
93 @repository.fetch_changesets
95 @repository.fetch_changesets
94 @project.reload
96 @project.reload
95 assert_equal NUM_REV, @repository.changesets.count
97 assert_equal NUM_REV, @repository.changesets.count
96
98
97 c0 = @repository.latest_changeset
99 c0 = @repository.latest_changeset
98 c1 = @repository.changesets.find_by_revision('0')
100 c1 = @repository.changesets.find_by_revision('0')
99 # sorted by revision (id), not by date
101 # sorted by revision (id), not by date
100 assert c0.revision.to_i > c1.revision.to_i
102 assert c0.revision.to_i > c1.revision.to_i
101 assert c0.committed_on < c1.committed_on
103 assert c0.committed_on < c1.committed_on
102 end
104 end
103
105
104 def test_latest_changesets
106 def test_latest_changesets
105 assert_equal 0, @repository.changesets.count
107 assert_equal 0, @repository.changesets.count
106 @repository.fetch_changesets
108 @repository.fetch_changesets
107 @project.reload
109 @project.reload
108 assert_equal NUM_REV, @repository.changesets.count
110 assert_equal NUM_REV, @repository.changesets.count
109
111
110 # with_limit
112 # with_limit
111 changesets = @repository.latest_changesets('', nil, 2)
113 changesets = @repository.latest_changesets('', nil, 2)
112 assert_equal %w|31 30|, changesets.collect(&:revision)
114 assert_equal %w|31 30|, changesets.collect(&:revision)
113
115
114 # with_filepath
116 # with_filepath
115 changesets = @repository.latest_changesets(
117 changesets = @repository.latest_changesets(
116 '/sql_escape/percent%dir/percent%file1.txt', nil)
118 '/sql_escape/percent%dir/percent%file1.txt', nil)
117 assert_equal %w|30 11 10 9|, changesets.collect(&:revision)
119 assert_equal %w|30 11 10 9|, changesets.collect(&:revision)
118
120
119 changesets = @repository.latest_changesets(
121 changesets = @repository.latest_changesets(
120 '/sql_escape/underscore_dir/understrike_file.txt', nil)
122 '/sql_escape/underscore_dir/understrike_file.txt', nil)
121 assert_equal %w|30 12 9|, changesets.collect(&:revision)
123 assert_equal %w|30 12 9|, changesets.collect(&:revision)
122
124
123 changesets = @repository.latest_changesets('README', nil)
125 changesets = @repository.latest_changesets('README', nil)
124 assert_equal %w|31 30 28 17 8 6 1 0|, changesets.collect(&:revision)
126 assert_equal %w|31 30 28 17 8 6 1 0|, changesets.collect(&:revision)
125
127
126 changesets = @repository.latest_changesets('README','8')
128 changesets = @repository.latest_changesets('README','8')
127 assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
129 assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
128
130
129 changesets = @repository.latest_changesets('README','8', 2)
131 changesets = @repository.latest_changesets('README','8', 2)
130 assert_equal %w|8 6|, changesets.collect(&:revision)
132 assert_equal %w|8 6|, changesets.collect(&:revision)
131
133
132 # with_dirpath
134 # with_dirpath
133 changesets = @repository.latest_changesets('images', nil)
135 changesets = @repository.latest_changesets('images', nil)
134 assert_equal %w|1 0|, changesets.collect(&:revision)
136 assert_equal %w|1 0|, changesets.collect(&:revision)
135
137
136 path = 'sql_escape/percent%dir'
138 path = 'sql_escape/percent%dir'
137 changesets = @repository.latest_changesets(path, nil)
139 changesets = @repository.latest_changesets(path, nil)
138 assert_equal %w|30 13 11 10 9|, changesets.collect(&:revision)
140 assert_equal %w|30 13 11 10 9|, changesets.collect(&:revision)
139
141
140 changesets = @repository.latest_changesets(path, '11')
142 changesets = @repository.latest_changesets(path, '11')
141 assert_equal %w|11 10 9|, changesets.collect(&:revision)
143 assert_equal %w|11 10 9|, changesets.collect(&:revision)
142
144
143 changesets = @repository.latest_changesets(path, '11', 2)
145 changesets = @repository.latest_changesets(path, '11', 2)
144 assert_equal %w|11 10|, changesets.collect(&:revision)
146 assert_equal %w|11 10|, changesets.collect(&:revision)
145
147
146 path = 'sql_escape/underscore_dir'
148 path = 'sql_escape/underscore_dir'
147 changesets = @repository.latest_changesets(path, nil)
149 changesets = @repository.latest_changesets(path, nil)
148 assert_equal %w|30 13 12 9|, changesets.collect(&:revision)
150 assert_equal %w|30 13 12 9|, changesets.collect(&:revision)
149
151
150 changesets = @repository.latest_changesets(path, '12')
152 changesets = @repository.latest_changesets(path, '12')
151 assert_equal %w|12 9|, changesets.collect(&:revision)
153 assert_equal %w|12 9|, changesets.collect(&:revision)
152
154
153 changesets = @repository.latest_changesets(path, '12', 1)
155 changesets = @repository.latest_changesets(path, '12', 1)
154 assert_equal %w|12|, changesets.collect(&:revision)
156 assert_equal %w|12|, changesets.collect(&:revision)
155
157
156 # tag
158 # tag
157 changesets = @repository.latest_changesets('', 'tag_test.00')
159 changesets = @repository.latest_changesets('', 'tag_test.00')
158 assert_equal %w|5 4 3 2 1 0|, changesets.collect(&:revision)
160 assert_equal %w|5 4 3 2 1 0|, changesets.collect(&:revision)
159
161
160 changesets = @repository.latest_changesets('', 'tag_test.00', 2)
162 changesets = @repository.latest_changesets('', 'tag_test.00', 2)
161 assert_equal %w|5 4|, changesets.collect(&:revision)
163 assert_equal %w|5 4|, changesets.collect(&:revision)
162
164
163 changesets = @repository.latest_changesets('sources', 'tag_test.00')
165 changesets = @repository.latest_changesets('sources', 'tag_test.00')
164 assert_equal %w|4 3 2 1 0|, changesets.collect(&:revision)
166 assert_equal %w|4 3 2 1 0|, changesets.collect(&:revision)
165
167
166 changesets = @repository.latest_changesets('sources', 'tag_test.00', 2)
168 changesets = @repository.latest_changesets('sources', 'tag_test.00', 2)
167 assert_equal %w|4 3|, changesets.collect(&:revision)
169 assert_equal %w|4 3|, changesets.collect(&:revision)
168
170
169 # named branch
171 # named branch
170 if @repository.scm.class.client_version_above?([1, 6])
172 if @repository.scm.class.client_version_above?([1, 6])
171 changesets = @repository.latest_changesets('', @branch_char_1)
173 changesets = @repository.latest_changesets('', @branch_char_1)
172 assert_equal %w|27 26|, changesets.collect(&:revision)
174 assert_equal %w|27 26|, changesets.collect(&:revision)
173 end
175 end
174
176
175 changesets = @repository.latest_changesets("latin-1-dir/test-#{@char_1}-subdir", @branch_char_1)
177 changesets = @repository.latest_changesets("latin-1-dir/test-#{@char_1}-subdir", @branch_char_1)
176 assert_equal %w|27|, changesets.collect(&:revision)
178 assert_equal %w|27|, changesets.collect(&:revision)
177 end
179 end
178
180
179 def test_copied_files
181 def test_copied_files
180 assert_equal 0, @repository.changesets.count
182 assert_equal 0, @repository.changesets.count
181 @repository.fetch_changesets
183 @repository.fetch_changesets
182 @project.reload
184 @project.reload
183 assert_equal NUM_REV, @repository.changesets.count
185 assert_equal NUM_REV, @repository.changesets.count
184
186
185 cs1 = @repository.changesets.find_by_revision('13')
187 cs1 = @repository.changesets.find_by_revision('13')
186 assert_not_nil cs1
188 assert_not_nil cs1
187 c1 = cs1.changes.sort_by(&:path)
189 c1 = cs1.changes.sort_by(&:path)
188 assert_equal 2, c1.size
190 assert_equal 2, c1.size
189
191
190 assert_equal 'A', c1[0].action
192 assert_equal 'A', c1[0].action
191 assert_equal '/sql_escape/percent%dir/percentfile1.txt', c1[0].path
193 assert_equal '/sql_escape/percent%dir/percentfile1.txt', c1[0].path
192 assert_equal '/sql_escape/percent%dir/percent%file1.txt', c1[0].from_path
194 assert_equal '/sql_escape/percent%dir/percent%file1.txt', c1[0].from_path
193 assert_equal '3a330eb32958', c1[0].from_revision
195 assert_equal '3a330eb32958', c1[0].from_revision
194
196
195 assert_equal 'A', c1[1].action
197 assert_equal 'A', c1[1].action
196 assert_equal '/sql_escape/underscore_dir/understrike-file.txt', c1[1].path
198 assert_equal '/sql_escape/underscore_dir/understrike-file.txt', c1[1].path
197 assert_equal '/sql_escape/underscore_dir/understrike_file.txt', c1[1].from_path
199 assert_equal '/sql_escape/underscore_dir/understrike_file.txt', c1[1].from_path
198
200
199 cs2 = @repository.changesets.find_by_revision('15')
201 cs2 = @repository.changesets.find_by_revision('15')
200 c2 = cs2.changes
202 c2 = cs2.changes
201 assert_equal 1, c2.size
203 assert_equal 1, c2.size
202
204
203 assert_equal 'A', c2[0].action
205 assert_equal 'A', c2[0].action
204 assert_equal '/README (1)[2]&,%.-3_4', c2[0].path
206 assert_equal '/README (1)[2]&,%.-3_4', c2[0].path
205 assert_equal '/README', c2[0].from_path
207 assert_equal '/README', c2[0].from_path
206 assert_equal '933ca60293d7', c2[0].from_revision
208 assert_equal '933ca60293d7', c2[0].from_revision
207
209
208 cs3 = @repository.changesets.find_by_revision('19')
210 cs3 = @repository.changesets.find_by_revision('19')
209 c3 = cs3.changes
211 c3 = cs3.changes
210 assert_equal 1, c3.size
212 assert_equal 1, c3.size
211 assert_equal 'A', c3[0].action
213 assert_equal 'A', c3[0].action
212 assert_equal "/latin-1-dir/test-#{@char_1}-1.txt", c3[0].path
214 assert_equal "/latin-1-dir/test-#{@char_1}-1.txt", c3[0].path
213 assert_equal "/latin-1-dir/test-#{@char_1}.txt", c3[0].from_path
215 assert_equal "/latin-1-dir/test-#{@char_1}.txt", c3[0].from_path
214 assert_equal '5d9891a1b425', c3[0].from_revision
216 assert_equal '5d9891a1b425', c3[0].from_revision
215 end
217 end
216
218
217 def test_find_changeset_by_name
219 def test_find_changeset_by_name
218 assert_equal 0, @repository.changesets.count
220 assert_equal 0, @repository.changesets.count
219 @repository.fetch_changesets
221 @repository.fetch_changesets
220 @project.reload
222 @project.reload
221 assert_equal NUM_REV, @repository.changesets.count
223 assert_equal NUM_REV, @repository.changesets.count
222 %w|2 400bb8672109 400|.each do |r|
224 %w|2 400bb8672109 400|.each do |r|
223 assert_equal '2', @repository.find_changeset_by_name(r).revision
225 assert_equal '2', @repository.find_changeset_by_name(r).revision
224 end
226 end
225 end
227 end
226
228
227 def test_find_changeset_by_invalid_name
229 def test_find_changeset_by_invalid_name
228 assert_equal 0, @repository.changesets.count
230 assert_equal 0, @repository.changesets.count
229 @repository.fetch_changesets
231 @repository.fetch_changesets
230 @project.reload
232 @project.reload
231 assert_equal NUM_REV, @repository.changesets.count
233 assert_equal NUM_REV, @repository.changesets.count
232 assert_nil @repository.find_changeset_by_name('100000')
234 assert_nil @repository.find_changeset_by_name('100000')
233 end
235 end
234
236
235 def test_identifier
237 def test_identifier
236 assert_equal 0, @repository.changesets.count
238 assert_equal 0, @repository.changesets.count
237 @repository.fetch_changesets
239 @repository.fetch_changesets
238 @project.reload
240 @project.reload
239 assert_equal NUM_REV, @repository.changesets.count
241 assert_equal NUM_REV, @repository.changesets.count
240 c = @repository.changesets.find_by_revision('2')
242 c = @repository.changesets.find_by_revision('2')
241 assert_equal c.scmid, c.identifier
243 assert_equal c.scmid, c.identifier
242 end
244 end
243
245
244 def test_format_identifier
246 def test_format_identifier
245 assert_equal 0, @repository.changesets.count
247 assert_equal 0, @repository.changesets.count
246 @repository.fetch_changesets
248 @repository.fetch_changesets
247 @project.reload
249 @project.reload
248 assert_equal NUM_REV, @repository.changesets.count
250 assert_equal NUM_REV, @repository.changesets.count
249 c = @repository.changesets.find_by_revision('2')
251 c = @repository.changesets.find_by_revision('2')
250 assert_equal '2:400bb8672109', c.format_identifier
252 assert_equal '2:400bb8672109', c.format_identifier
251 end
253 end
252
254
253 def test_find_changeset_by_empty_name
255 def test_find_changeset_by_empty_name
254 assert_equal 0, @repository.changesets.count
256 assert_equal 0, @repository.changesets.count
255 @repository.fetch_changesets
257 @repository.fetch_changesets
256 @project.reload
258 @project.reload
257 assert_equal NUM_REV, @repository.changesets.count
259 assert_equal NUM_REV, @repository.changesets.count
258 ['', ' ', nil].each do |r|
260 ['', ' ', nil].each do |r|
259 assert_nil @repository.find_changeset_by_name(r)
261 assert_nil @repository.find_changeset_by_name(r)
260 end
262 end
261 end
263 end
262
264
263 def test_parents
265 def test_parents
264 assert_equal 0, @repository.changesets.count
266 assert_equal 0, @repository.changesets.count
265 @repository.fetch_changesets
267 @repository.fetch_changesets
266 @project.reload
268 @project.reload
267 assert_equal NUM_REV, @repository.changesets.count
269 assert_equal NUM_REV, @repository.changesets.count
268 r1 = @repository.changesets.find_by_revision('0')
270 r1 = @repository.changesets.find_by_revision('0')
269 assert_equal [], r1.parents
271 assert_equal [], r1.parents
270 r2 = @repository.changesets.find_by_revision('1')
272 r2 = @repository.changesets.find_by_revision('1')
271 assert_equal 1, r2.parents.length
273 assert_equal 1, r2.parents.length
272 assert_equal "0885933ad4f6",
274 assert_equal "0885933ad4f6",
273 r2.parents[0].identifier
275 r2.parents[0].identifier
274 r3 = @repository.changesets.find_by_revision('30')
276 r3 = @repository.changesets.find_by_revision('30')
275 assert_equal 2, r3.parents.length
277 assert_equal 2, r3.parents.length
276 r4 = [r3.parents[0].identifier, r3.parents[1].identifier].sort
278 r4 = [r3.parents[0].identifier, r3.parents[1].identifier].sort
277 assert_equal "3a330eb32958", r4[0]
279 assert_equal "3a330eb32958", r4[0]
278 assert_equal "a94b0528f24f", r4[1]
280 assert_equal "a94b0528f24f", r4[1]
279 end
281 end
280
282
281 def test_activities
283 def test_activities
282 c = Changeset.new(:repository => @repository,
284 c = Changeset.new(:repository => @repository,
283 :committed_on => Time.now,
285 :committed_on => Time.now,
284 :revision => '123',
286 :revision => '123',
285 :scmid => 'abc400bb8672',
287 :scmid => 'abc400bb8672',
286 :comments => 'test')
288 :comments => 'test')
287 assert c.event_title.include?('123:abc400bb8672:')
289 assert c.event_title.include?('123:abc400bb8672:')
288 assert_equal 'abc400bb8672', c.event_url[:rev]
290 assert_equal 'abc400bb8672', c.event_url[:rev]
289 end
291 end
290
292
291 def test_previous
293 def test_previous
292 assert_equal 0, @repository.changesets.count
294 assert_equal 0, @repository.changesets.count
293 @repository.fetch_changesets
295 @repository.fetch_changesets
294 @project.reload
296 @project.reload
295 assert_equal NUM_REV, @repository.changesets.count
297 assert_equal NUM_REV, @repository.changesets.count
296 %w|28 3ae45e2d177d 3ae45|.each do |r1|
298 %w|28 3ae45e2d177d 3ae45|.each do |r1|
297 changeset = @repository.find_changeset_by_name(r1)
299 changeset = @repository.find_changeset_by_name(r1)
298 %w|27 7bbf4c738e71 7bbf|.each do |r2|
300 %w|27 7bbf4c738e71 7bbf|.each do |r2|
299 assert_equal @repository.find_changeset_by_name(r2), changeset.previous
301 assert_equal @repository.find_changeset_by_name(r2), changeset.previous
300 end
302 end
301 end
303 end
302 end
304 end
303
305
304 def test_previous_nil
306 def test_previous_nil
305 assert_equal 0, @repository.changesets.count
307 assert_equal 0, @repository.changesets.count
306 @repository.fetch_changesets
308 @repository.fetch_changesets
307 @project.reload
309 @project.reload
308 assert_equal NUM_REV, @repository.changesets.count
310 assert_equal NUM_REV, @repository.changesets.count
309 %w|0 0885933ad4f6 0885|.each do |r1|
311 %w|0 0885933ad4f6 0885|.each do |r1|
310 changeset = @repository.find_changeset_by_name(r1)
312 changeset = @repository.find_changeset_by_name(r1)
311 assert_nil changeset.previous
313 assert_nil changeset.previous
312 end
314 end
313 end
315 end
314
316
315 def test_next
317 def test_next
316 assert_equal 0, @repository.changesets.count
318 assert_equal 0, @repository.changesets.count
317 @repository.fetch_changesets
319 @repository.fetch_changesets
318 @project.reload
320 @project.reload
319 assert_equal NUM_REV, @repository.changesets.count
321 assert_equal NUM_REV, @repository.changesets.count
320 %w|27 7bbf4c738e71 7bbf|.each do |r2|
322 %w|27 7bbf4c738e71 7bbf|.each do |r2|
321 changeset = @repository.find_changeset_by_name(r2)
323 changeset = @repository.find_changeset_by_name(r2)
322 %w|28 3ae45e2d177d 3ae45|.each do |r1|
324 %w|28 3ae45e2d177d 3ae45|.each do |r1|
323 assert_equal @repository.find_changeset_by_name(r1), changeset.next
325 assert_equal @repository.find_changeset_by_name(r1), changeset.next
324 end
326 end
325 end
327 end
326 end
328 end
327
329
328 def test_next_nil
330 def test_next_nil
329 assert_equal 0, @repository.changesets.count
331 assert_equal 0, @repository.changesets.count
330 @repository.fetch_changesets
332 @repository.fetch_changesets
331 @project.reload
333 @project.reload
332 assert_equal NUM_REV, @repository.changesets.count
334 assert_equal NUM_REV, @repository.changesets.count
333 %w|31 31eeee7395c8 31eee|.each do |r1|
335 %w|31 31eeee7395c8 31eee|.each do |r1|
334 changeset = @repository.find_changeset_by_name(r1)
336 changeset = @repository.find_changeset_by_name(r1)
335 assert_nil changeset.next
337 assert_nil changeset.next
336 end
338 end
337 end
339 end
338 else
340 else
339 puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
341 puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
340 def test_fake; assert true end
342 def test_fake; assert true end
341 end
343 end
342 end
344 end
General Comments 0
You need to be logged in to leave comments. Login now