##// END OF EJS Templates
scm: git: add test of from_path at unit model test_fetch_changesets_from_scratch...
Toshi MARUYAMA -
r9155:cdb7ea8b916e
parent child
Show More
@@ -1,555 +1,556
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.expand_path('../../test_helper', __FILE__)
19 19
20 20 class RepositoryGitTest < ActiveSupport::TestCase
21 21 fixtures :projects, :repositories, :enabled_modules, :users, :roles
22 22
23 23 include Redmine::I18n
24 24
25 25 REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s
26 26 REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
27 27
28 28 NUM_REV = 28
29 29 NUM_HEAD = 6
30 30
31 31 FELIX_HEX = "Felix Sch\xC3\xA4fer"
32 32 CHAR_1_HEX = "\xc3\x9c"
33 33
34 34 ## Ruby uses ANSI api to fork a process on Windows.
35 35 ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem
36 36 ## and these are incompatible with ASCII.
37 37 # WINDOWS_PASS = Redmine::Platform.mswin?
38 38 WINDOWS_PASS = false
39 39
40 40 ## Git, Mercurial and CVS path encodings are binary.
41 41 ## Subversion supports URL encoding for path.
42 42 ## Redmine Mercurial adapter and extension use URL encoding.
43 43 ## Git accepts only binary path in command line parameter.
44 44 ## So, there is no way to use binary command line parameter in JRuby.
45 45 JRUBY_SKIP = (RUBY_PLATFORM == 'java')
46 46 JRUBY_SKIP_STR = "TODO: This test fails in JRuby"
47 47
48 48 def setup
49 49 @project = Project.find(3)
50 50 @repository = Repository::Git.create(
51 51 :project => @project,
52 52 :url => REPOSITORY_PATH,
53 53 :path_encoding => 'ISO-8859-1'
54 54 )
55 55 assert @repository
56 56 @char_1 = CHAR_1_HEX.dup
57 57 if @char_1.respond_to?(:force_encoding)
58 58 @char_1.force_encoding('UTF-8')
59 59 end
60 60 end
61 61
62 62 def test_blank_path_to_repository_error_message
63 63 set_language_if_valid 'en'
64 64 repo = Repository::Git.new(
65 65 :project => @project,
66 66 :identifier => 'test'
67 67 )
68 68 assert !repo.save
69 69 assert_include "Path to repository can't be blank",
70 70 repo.errors.full_messages
71 71 end
72 72
73 73 def test_blank_path_to_repository_error_message_fr
74 74 set_language_if_valid 'fr'
75 75 str = "Chemin du d\xc3\xa9p\xc3\xb4t doit \xc3\xaatre renseign\xc3\xa9(e)"
76 76 str.force_encoding('UTF-8') if str.respond_to?(:force_encoding)
77 77 repo = Repository::Git.new(
78 78 :project => @project,
79 79 :url => "",
80 80 :identifier => 'test',
81 81 :path_encoding => ''
82 82 )
83 83 assert !repo.save
84 84 assert_include str, repo.errors.full_messages
85 85 end
86 86
87 87 if File.directory?(REPOSITORY_PATH)
88 88 def test_scm_available
89 89 klass = Repository::Git
90 90 assert_equal "Git", klass.scm_name
91 91 assert klass.scm_adapter_class
92 92 assert_not_equal "", klass.scm_command
93 93 assert_equal true, klass.scm_available
94 94 end
95 95
96 96 def test_fetch_changesets_from_scratch
97 97 assert_nil @repository.extra_info
98 98
99 99 assert_equal 0, @repository.changesets.count
100 100 @repository.fetch_changesets
101 101 @project.reload
102 102
103 103 assert_equal NUM_REV, @repository.changesets.count
104 104 assert_equal 39, @repository.changes.count
105 105
106 106 commit = @repository.changesets.find_by_revision("7234cb2750b63f47bff735edc50a1c0a433c2518")
107 107 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518", commit.scmid
108 108 assert_equal "Initial import.\nThe repository contains 3 files.", commit.comments
109 109 assert_equal "jsmith <jsmith@foo.bar>", commit.committer
110 110 assert_equal User.find_by_login('jsmith'), commit.user
111 111 # TODO: add a commit with commit time <> author time to the test repository
112 112 assert_equal "2007-12-14 09:22:52".to_time, commit.committed_on
113 113 assert_equal "2007-12-14".to_date, commit.commit_date
114 114 assert_equal 3, commit.changes.count
115 115 change = commit.changes.sort_by(&:path).first
116 116 assert_equal "README", change.path
117 assert_equal nil, change.from_path
117 118 assert_equal "A", change.action
118 119
119 120 assert_equal NUM_HEAD, @repository.extra_info["heads"].size
120 121 end
121 122
122 123 def test_fetch_changesets_incremental
123 124 assert_equal 0, @repository.changesets.count
124 125 @repository.fetch_changesets
125 126 @project.reload
126 127 assert_equal NUM_REV, @repository.changesets.count
127 128 extra_info_heads = @repository.extra_info["heads"].dup
128 129 assert_equal NUM_HEAD, extra_info_heads.size
129 130 extra_info_heads.delete_if { |x| x == "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c" }
130 131 assert_equal 4, extra_info_heads.size
131 132
132 133 del_revs = [
133 134 "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c",
134 135 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b",
135 136 "4f26664364207fa8b1af9f8722647ab2d4ac5d43",
136 137 "deff712f05a90d96edbd70facc47d944be5897e3",
137 138 "32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf",
138 139 "7e61ac704deecde634b51e59daa8110435dcb3da",
139 140 ]
140 141 @repository.changesets.each do |rev|
141 142 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s }
142 143 end
143 144 @project.reload
144 145 cs1 = @repository.changesets
145 146 assert_equal NUM_REV - 6, cs1.count
146 147 extra_info_heads << "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8"
147 148 h = {}
148 149 h["heads"] = extra_info_heads
149 150 @repository.merge_extra_info(h)
150 151 @repository.save
151 152 @project.reload
152 153 assert @repository.extra_info["heads"].index("4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8")
153 154 @repository.fetch_changesets
154 155 @project.reload
155 156 assert_equal NUM_REV, @repository.changesets.count
156 157 assert_equal NUM_HEAD, @repository.extra_info["heads"].size
157 158 assert @repository.extra_info["heads"].index("83ca5fd546063a3c7dc2e568ba3355661a9e2b2c")
158 159 end
159 160
160 161 def test_fetch_changesets_history_editing
161 162 assert_equal 0, @repository.changesets.count
162 163 @repository.fetch_changesets
163 164 @project.reload
164 165 assert_equal NUM_REV, @repository.changesets.count
165 166 extra_info_heads = @repository.extra_info["heads"].dup
166 167 assert_equal NUM_HEAD, extra_info_heads.size
167 168 extra_info_heads.delete_if { |x| x == "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c" }
168 169 assert_equal 4, extra_info_heads.size
169 170
170 171 del_revs = [
171 172 "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c",
172 173 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b",
173 174 "4f26664364207fa8b1af9f8722647ab2d4ac5d43",
174 175 "deff712f05a90d96edbd70facc47d944be5897e3",
175 176 "32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf",
176 177 "7e61ac704deecde634b51e59daa8110435dcb3da",
177 178 ]
178 179 @repository.changesets.each do |rev|
179 180 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s }
180 181 end
181 182 @project.reload
182 183 assert_equal NUM_REV - 6, @repository.changesets.count
183 184
184 185 c = Changeset.new(:repository => @repository,
185 186 :committed_on => Time.now,
186 187 :revision => "abcd1234efgh",
187 188 :scmid => "abcd1234efgh",
188 189 :comments => 'test')
189 190 assert c.save
190 191 @project.reload
191 192 assert_equal NUM_REV - 5, @repository.changesets.count
192 193
193 194 extra_info_heads << "1234abcd5678"
194 195 h = {}
195 196 h["heads"] = extra_info_heads
196 197 @repository.merge_extra_info(h)
197 198 @repository.save
198 199 @project.reload
199 200 h1 = @repository.extra_info["heads"].dup
200 201 assert h1.index("1234abcd5678")
201 202 assert_equal 5, h1.size
202 203
203 204 @repository.fetch_changesets
204 205 @project.reload
205 206 assert_equal NUM_REV - 5, @repository.changesets.count
206 207 h2 = @repository.extra_info["heads"].dup
207 208 assert_equal h1, h2
208 209 end
209 210
210 211 def test_parents
211 212 assert_equal 0, @repository.changesets.count
212 213 @repository.fetch_changesets
213 214 @project.reload
214 215 assert_equal NUM_REV, @repository.changesets.count
215 216 r1 = @repository.find_changeset_by_name("7234cb2750b63")
216 217 assert_equal [], r1.parents
217 218 r2 = @repository.find_changeset_by_name("899a15dba03a3")
218 219 assert_equal 1, r2.parents.length
219 220 assert_equal "7234cb2750b63f47bff735edc50a1c0a433c2518",
220 221 r2.parents[0].identifier
221 222 r3 = @repository.find_changeset_by_name("32ae898b720c2")
222 223 assert_equal 2, r3.parents.length
223 224 r4 = [r3.parents[0].identifier, r3.parents[1].identifier].sort
224 225 assert_equal "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8", r4[0]
225 226 assert_equal "7e61ac704deecde634b51e59daa8110435dcb3da", r4[1]
226 227 end
227 228
228 229 def test_db_consistent_ordering_init
229 230 assert_nil @repository.extra_info
230 231 assert_equal 0, @repository.changesets.count
231 232 @repository.fetch_changesets
232 233 @project.reload
233 234 assert_equal 1, @repository.extra_info["db_consistent"]["ordering"]
234 235 end
235 236
236 237 def test_db_consistent_ordering_before_1_2
237 238 assert_nil @repository.extra_info
238 239 assert_equal 0, @repository.changesets.count
239 240 @repository.fetch_changesets
240 241 @project.reload
241 242 assert_equal NUM_REV, @repository.changesets.count
242 243 assert_not_nil @repository.extra_info
243 244 h = {}
244 245 h["heads"] = []
245 246 h["branches"] = {}
246 247 h["db_consistent"] = {}
247 248 @repository.merge_extra_info(h)
248 249 @repository.save
249 250 assert_equal NUM_REV, @repository.changesets.count
250 251 @repository.fetch_changesets
251 252 @project.reload
252 253 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"]
253 254
254 255 extra_info_heads = @repository.extra_info["heads"].dup
255 256 extra_info_heads.delete_if { |x| x == "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c" }
256 257 del_revs = [
257 258 "83ca5fd546063a3c7dc2e568ba3355661a9e2b2c",
258 259 "ed5bb786bbda2dee66a2d50faf51429dbc043a7b",
259 260 "4f26664364207fa8b1af9f8722647ab2d4ac5d43",
260 261 "deff712f05a90d96edbd70facc47d944be5897e3",
261 262 "32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf",
262 263 "7e61ac704deecde634b51e59daa8110435dcb3da",
263 264 ]
264 265 @repository.changesets.each do |rev|
265 266 rev.destroy if del_revs.detect {|r| r == rev.scmid.to_s }
266 267 end
267 268 @project.reload
268 269 cs1 = @repository.changesets
269 270 assert_equal NUM_REV - 6, cs1.count
270 271 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"]
271 272
272 273 extra_info_heads << "4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8"
273 274 h = {}
274 275 h["heads"] = extra_info_heads
275 276 @repository.merge_extra_info(h)
276 277 @repository.save
277 278 @project.reload
278 279 assert @repository.extra_info["heads"].index("4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8")
279 280 @repository.fetch_changesets
280 281 @project.reload
281 282 assert_equal NUM_REV, @repository.changesets.count
282 283 assert_equal NUM_HEAD, @repository.extra_info["heads"].size
283 284
284 285 assert_equal 0, @repository.extra_info["db_consistent"]["ordering"]
285 286 end
286 287
287 288 def test_heads_from_branches_hash
288 289 assert_nil @repository.extra_info
289 290 assert_equal 0, @repository.changesets.count
290 291 assert_equal [], @repository.heads_from_branches_hash
291 292 h = {}
292 293 h["branches"] = {}
293 294 h["branches"]["test1"] = {}
294 295 h["branches"]["test1"]["last_scmid"] = "1234abcd"
295 296 h["branches"]["test2"] = {}
296 297 h["branches"]["test2"]["last_scmid"] = "abcd1234"
297 298 @repository.merge_extra_info(h)
298 299 @repository.save
299 300 @project.reload
300 301 assert_equal ["1234abcd", "abcd1234"], @repository.heads_from_branches_hash.sort
301 302 end
302 303
303 304 def test_latest_changesets
304 305 assert_equal 0, @repository.changesets.count
305 306 @repository.fetch_changesets
306 307 @project.reload
307 308 assert_equal NUM_REV, @repository.changesets.count
308 309 # with limit
309 310 changesets = @repository.latest_changesets('', 'master', 2)
310 311 assert_equal 2, changesets.size
311 312
312 313 # with path
313 314 changesets = @repository.latest_changesets('images', 'master')
314 315 assert_equal [
315 316 'deff712f05a90d96edbd70facc47d944be5897e3',
316 317 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
317 318 '7234cb2750b63f47bff735edc50a1c0a433c2518',
318 319 ], changesets.collect(&:revision)
319 320
320 321 changesets = @repository.latest_changesets('README', nil)
321 322 assert_equal [
322 323 '32ae898b720c2f7eec2723d5bdd558b4cb2d3ddf',
323 324 '4a07fe31bffcf2888791f3e6cbc9c4545cefe3e8',
324 325 '713f4944648826f558cf548222f813dabe7cbb04',
325 326 '61b685fbe55ab05b5ac68402d5720c1a6ac973d1',
326 327 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
327 328 '7234cb2750b63f47bff735edc50a1c0a433c2518',
328 329 ], changesets.collect(&:revision)
329 330
330 331 # with path, revision and limit
331 332 changesets = @repository.latest_changesets('images', '899a15dba')
332 333 assert_equal [
333 334 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
334 335 '7234cb2750b63f47bff735edc50a1c0a433c2518',
335 336 ], changesets.collect(&:revision)
336 337
337 338 changesets = @repository.latest_changesets('images', '899a15dba', 1)
338 339 assert_equal [
339 340 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
340 341 ], changesets.collect(&:revision)
341 342
342 343 changesets = @repository.latest_changesets('README', '899a15dba')
343 344 assert_equal [
344 345 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
345 346 '7234cb2750b63f47bff735edc50a1c0a433c2518',
346 347 ], changesets.collect(&:revision)
347 348
348 349 changesets = @repository.latest_changesets('README', '899a15dba', 1)
349 350 assert_equal [
350 351 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
351 352 ], changesets.collect(&:revision)
352 353
353 354 # with path, tag and limit
354 355 changesets = @repository.latest_changesets('images', 'tag01.annotated')
355 356 assert_equal [
356 357 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
357 358 '7234cb2750b63f47bff735edc50a1c0a433c2518',
358 359 ], changesets.collect(&:revision)
359 360
360 361 changesets = @repository.latest_changesets('images', 'tag01.annotated', 1)
361 362 assert_equal [
362 363 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
363 364 ], changesets.collect(&:revision)
364 365
365 366 changesets = @repository.latest_changesets('README', 'tag01.annotated')
366 367 assert_equal [
367 368 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
368 369 '7234cb2750b63f47bff735edc50a1c0a433c2518',
369 370 ], changesets.collect(&:revision)
370 371
371 372 changesets = @repository.latest_changesets('README', 'tag01.annotated', 1)
372 373 assert_equal [
373 374 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
374 375 ], changesets.collect(&:revision)
375 376
376 377 # with path, branch and limit
377 378 changesets = @repository.latest_changesets('images', 'test_branch')
378 379 assert_equal [
379 380 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
380 381 '7234cb2750b63f47bff735edc50a1c0a433c2518',
381 382 ], changesets.collect(&:revision)
382 383
383 384 changesets = @repository.latest_changesets('images', 'test_branch', 1)
384 385 assert_equal [
385 386 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
386 387 ], changesets.collect(&:revision)
387 388
388 389 changesets = @repository.latest_changesets('README', 'test_branch')
389 390 assert_equal [
390 391 '713f4944648826f558cf548222f813dabe7cbb04',
391 392 '61b685fbe55ab05b5ac68402d5720c1a6ac973d1',
392 393 '899a15dba03a3b350b89c3f537e4bbe02a03cdc9',
393 394 '7234cb2750b63f47bff735edc50a1c0a433c2518',
394 395 ], changesets.collect(&:revision)
395 396
396 397 changesets = @repository.latest_changesets('README', 'test_branch', 2)
397 398 assert_equal [
398 399 '713f4944648826f558cf548222f813dabe7cbb04',
399 400 '61b685fbe55ab05b5ac68402d5720c1a6ac973d1',
400 401 ], changesets.collect(&:revision)
401 402
402 403 if JRUBY_SKIP
403 404 puts JRUBY_SKIP_STR
404 405 else
405 406 # latin-1 encoding path
406 407 changesets = @repository.latest_changesets(
407 408 "latin-1-dir/test-#{@char_1}-2.txt", '64f1f3e89')
408 409 assert_equal [
409 410 '64f1f3e89ad1cb57976ff0ad99a107012ba3481d',
410 411 '4fc55c43bf3d3dc2efb66145365ddc17639ce81e',
411 412 ], changesets.collect(&:revision)
412 413
413 414 changesets = @repository.latest_changesets(
414 415 "latin-1-dir/test-#{@char_1}-2.txt", '64f1f3e89', 1)
415 416 assert_equal [
416 417 '64f1f3e89ad1cb57976ff0ad99a107012ba3481d',
417 418 ], changesets.collect(&:revision)
418 419 end
419 420 end
420 421
421 422 def test_latest_changesets_latin_1_dir
422 423 if WINDOWS_PASS
423 424 #
424 425 elsif JRUBY_SKIP
425 426 puts JRUBY_SKIP_STR
426 427 else
427 428 assert_equal 0, @repository.changesets.count
428 429 @repository.fetch_changesets
429 430 @project.reload
430 431 assert_equal NUM_REV, @repository.changesets.count
431 432 changesets = @repository.latest_changesets(
432 433 "latin-1-dir/test-#{@char_1}-subdir", '1ca7f5ed')
433 434 assert_equal [
434 435 '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127',
435 436 ], changesets.collect(&:revision)
436 437 end
437 438 end
438 439
439 440 def test_find_changeset_by_name
440 441 assert_equal 0, @repository.changesets.count
441 442 @repository.fetch_changesets
442 443 @project.reload
443 444 assert_equal NUM_REV, @repository.changesets.count
444 445 ['7234cb2750b63f47bff735edc50a1c0a433c2518', '7234cb2750b'].each do |r|
445 446 assert_equal '7234cb2750b63f47bff735edc50a1c0a433c2518',
446 447 @repository.find_changeset_by_name(r).revision
447 448 end
448 449 end
449 450
450 451 def test_find_changeset_by_empty_name
451 452 assert_equal 0, @repository.changesets.count
452 453 @repository.fetch_changesets
453 454 @project.reload
454 455 assert_equal NUM_REV, @repository.changesets.count
455 456 ['', ' ', nil].each do |r|
456 457 assert_nil @repository.find_changeset_by_name(r)
457 458 end
458 459 end
459 460
460 461 def test_identifier
461 462 assert_equal 0, @repository.changesets.count
462 463 @repository.fetch_changesets
463 464 @project.reload
464 465 assert_equal NUM_REV, @repository.changesets.count
465 466 c = @repository.changesets.find_by_revision(
466 467 '7234cb2750b63f47bff735edc50a1c0a433c2518')
467 468 assert_equal c.scmid, c.identifier
468 469 end
469 470
470 471 def test_format_identifier
471 472 assert_equal 0, @repository.changesets.count
472 473 @repository.fetch_changesets
473 474 @project.reload
474 475 assert_equal NUM_REV, @repository.changesets.count
475 476 c = @repository.changesets.find_by_revision(
476 477 '7234cb2750b63f47bff735edc50a1c0a433c2518')
477 478 assert_equal '7234cb27', c.format_identifier
478 479 end
479 480
480 481 def test_activities
481 482 c = Changeset.new(:repository => @repository,
482 483 :committed_on => Time.now,
483 484 :revision => 'abc7234cb2750b63f47bff735edc50a1c0a433c2',
484 485 :scmid => 'abc7234cb2750b63f47bff735edc50a1c0a433c2',
485 486 :comments => 'test')
486 487 assert c.event_title.include?('abc7234c:')
487 488 assert_equal 'abc7234cb2750b63f47bff735edc50a1c0a433c2', c.event_url[:rev]
488 489 end
489 490
490 491 def test_log_utf8
491 492 assert_equal 0, @repository.changesets.count
492 493 @repository.fetch_changesets
493 494 @project.reload
494 495 assert_equal NUM_REV, @repository.changesets.count
495 496 str_felix_hex = FELIX_HEX.dup
496 497 if str_felix_hex.respond_to?(:force_encoding)
497 498 str_felix_hex.force_encoding('UTF-8')
498 499 end
499 500 c = @repository.changesets.find_by_revision(
500 501 'ed5bb786bbda2dee66a2d50faf51429dbc043a7b')
501 502 assert_equal "#{str_felix_hex} <felix@fachschaften.org>", c.committer
502 503 end
503 504
504 505 def test_previous
505 506 assert_equal 0, @repository.changesets.count
506 507 @repository.fetch_changesets
507 508 @project.reload
508 509 assert_equal NUM_REV, @repository.changesets.count
509 510 %w|1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127 1ca7f5ed|.each do |r1|
510 511 changeset = @repository.find_changeset_by_name(r1)
511 512 %w|64f1f3e89ad1cb57976ff0ad99a107012ba3481d 64f1f3e89ad1|.each do |r2|
512 513 assert_equal @repository.find_changeset_by_name(r2), changeset.previous
513 514 end
514 515 end
515 516 end
516 517
517 518 def test_previous_nil
518 519 assert_equal 0, @repository.changesets.count
519 520 @repository.fetch_changesets
520 521 @project.reload
521 522 assert_equal NUM_REV, @repository.changesets.count
522 523 %w|7234cb2750b63f47bff735edc50a1c0a433c2518 7234cb275|.each do |r1|
523 524 changeset = @repository.find_changeset_by_name(r1)
524 525 assert_nil changeset.previous
525 526 end
526 527 end
527 528
528 529 def test_next
529 530 assert_equal 0, @repository.changesets.count
530 531 @repository.fetch_changesets
531 532 @project.reload
532 533 assert_equal NUM_REV, @repository.changesets.count
533 534 %w|64f1f3e89ad1cb57976ff0ad99a107012ba3481d 64f1f3e89ad1|.each do |r2|
534 535 changeset = @repository.find_changeset_by_name(r2)
535 536 %w|1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127 1ca7f5ed|.each do |r1|
536 537 assert_equal @repository.find_changeset_by_name(r1), changeset.next
537 538 end
538 539 end
539 540 end
540 541
541 542 def test_next_nil
542 543 assert_equal 0, @repository.changesets.count
543 544 @repository.fetch_changesets
544 545 @project.reload
545 546 assert_equal NUM_REV, @repository.changesets.count
546 547 %w|2a682156a3b6e77a8bf9cd4590e8db757f3c6c78 2a682156a3b6e77a|.each do |r1|
547 548 changeset = @repository.find_changeset_by_name(r1)
548 549 assert_nil changeset.next
549 550 end
550 551 end
551 552 else
552 553 puts "Git test repository NOT FOUND. Skipping unit tests !!!"
553 554 def test_fake; assert true end
554 555 end
555 556 end
General Comments 0
You need to be logged in to leave comments. Login now