@@ -70,7 +70,7 @@ func TestBurndownConfigure(t *testing.T) {
70
70
facts [ConfigBurndownHibernationDirectory ] = "xxx"
71
71
facts [identity .FactIdentityDetectorPeopleCount ] = 5
72
72
facts [identity .FactIdentityDetectorReversedPeopleDict ] = bd .Requires ()
73
- bd .Configure (facts )
73
+ assert . Nil ( t , bd .Configure (facts ) )
74
74
assert .Equal (t , bd .Granularity , 100 )
75
75
assert .Equal (t , bd .Sampling , 200 )
76
76
assert .Equal (t , bd .TrackFiles , true )
@@ -82,10 +82,10 @@ func TestBurndownConfigure(t *testing.T) {
82
82
assert .Equal (t , bd .reversedPeopleDict , bd .Requires ())
83
83
facts [ConfigBurndownTrackPeople ] = false
84
84
facts [identity .FactIdentityDetectorPeopleCount ] = 50
85
- bd .Configure (facts )
85
+ assert . Nil ( t , bd .Configure (facts ) )
86
86
assert .Equal (t , bd .PeopleNumber , 0 )
87
87
facts = map [string ]interface {}{}
88
- bd .Configure (facts )
88
+ assert . Nil ( t , bd .Configure (facts ) )
89
89
assert .Equal (t , bd .Granularity , 100 )
90
90
assert .Equal (t , bd .Sampling , 200 )
91
91
assert .Equal (t , bd .TrackFiles , true )
@@ -110,24 +110,24 @@ func TestBurndownRegistration(t *testing.T) {
110
110
}
111
111
112
112
func TestBurndownInitialize (t * testing.T ) {
113
- burndown := BurndownAnalysis {}
114
- burndown .Sampling = - 10
115
- burndown .Granularity = DefaultBurndownGranularity
116
- burndown .HibernationThreshold = 10
117
- burndown . Initialize (test .Repository )
118
- assert .Equal (t , burndown .Sampling , DefaultBurndownGranularity )
119
- assert .Equal (t , burndown .Granularity , DefaultBurndownGranularity )
120
- assert .Equal (t , burndown .fileAllocator .HibernationThreshold , 10 )
121
- burndown .Sampling = 0
122
- burndown .Granularity = DefaultBurndownGranularity - 1
123
- burndown . Initialize (test .Repository )
124
- assert .Equal (t , burndown .Sampling , DefaultBurndownGranularity - 1 )
125
- assert .Equal (t , burndown .Granularity , DefaultBurndownGranularity - 1 )
126
- burndown .Sampling = DefaultBurndownGranularity - 1
127
- burndown .Granularity = - 10
128
- burndown . Initialize (test .Repository )
129
- assert .Equal (t , burndown .Sampling , DefaultBurndownGranularity - 1 )
130
- assert .Equal (t , burndown .Granularity , DefaultBurndownGranularity )
113
+ bd := BurndownAnalysis {}
114
+ bd .Sampling = - 10
115
+ bd .Granularity = DefaultBurndownGranularity
116
+ bd .HibernationThreshold = 10
117
+ assert . Nil ( t , bd . Initialize (test .Repository ) )
118
+ assert .Equal (t , bd .Sampling , DefaultBurndownGranularity )
119
+ assert .Equal (t , bd .Granularity , DefaultBurndownGranularity )
120
+ assert .Equal (t , bd .fileAllocator .HibernationThreshold , 10 )
121
+ bd .Sampling = 0
122
+ bd .Granularity = DefaultBurndownGranularity - 1
123
+ assert . Nil ( t , bd . Initialize (test .Repository ) )
124
+ assert .Equal (t , bd .Sampling , DefaultBurndownGranularity - 1 )
125
+ assert .Equal (t , bd .Granularity , DefaultBurndownGranularity - 1 )
126
+ bd .Sampling = DefaultBurndownGranularity - 1
127
+ bd .Granularity = - 10
128
+ assert . Nil ( t , bd . Initialize (test .Repository ) )
129
+ assert .Equal (t , bd .Sampling , DefaultBurndownGranularity - 1 )
130
+ assert .Equal (t , bd .Granularity , DefaultBurndownGranularity )
131
131
}
132
132
133
133
func TestBurndownConsumeFinalize (t * testing.T ) {
@@ -137,7 +137,7 @@ func TestBurndownConsumeFinalize(t *testing.T) {
137
137
PeopleNumber : 2 ,
138
138
TrackFiles : true ,
139
139
}
140
- bd .Initialize (test .Repository )
140
+ assert . Nil ( t , bd .Initialize (test .Repository ) )
141
141
deps := map [string ]interface {}{}
142
142
143
143
// stage 1
@@ -216,15 +216,15 @@ func TestBurndownConsumeFinalize(t *testing.T) {
216
216
Granularity : 30 ,
217
217
Sampling : 0 ,
218
218
}
219
- bd2 .Initialize (test .Repository )
219
+ assert . Nil ( t , bd2 .Initialize (test .Repository ) )
220
220
_ , err = bd2 .Consume (deps )
221
221
assert .Nil (t , err )
222
222
assert .Len (t , bd2 .peopleHistories , 0 )
223
223
assert .Len (t , bd2 .fileHistories , 0 )
224
224
225
225
// check merge hashes
226
226
burndown3 := BurndownAnalysis {}
227
- burndown3 .Initialize (test .Repository )
227
+ assert . Nil ( t , burndown3 .Initialize (test .Repository ) )
228
228
deps [identity .DependencyAuthor ] = 1
229
229
deps [core .DependencyIsMerge ] = true
230
230
_ , err = burndown3 .Consume (deps )
@@ -354,6 +354,112 @@ func TestBurndownConsumeFinalize(t *testing.T) {
354
354
}
355
355
}
356
356
357
+ func TestBurndownConsumeMergeAuthorMissing (t * testing.T ) {
358
+ deps := map [string ]interface {}{}
359
+ deps [items .DependencyDay ] = 0
360
+ cache := map [plumbing.Hash ]* items.CachedBlob {}
361
+ AddHash (t , cache , "291286b4ac41952cbd1389fda66420ec03c1a9fe" )
362
+ AddHash (t , cache , "c29112dbd697ad9b401333b80c18a63951bc18d9" )
363
+ AddHash (t , cache , "baa64828831d174f40140e4b3cfa77d1e917a2c1" )
364
+ AddHash (t , cache , "dc248ba2b22048cc730c571a748e8ffcf7085ab9" )
365
+ deps [items .DependencyBlobCache ] = cache
366
+ changes := make (object.Changes , 3 )
367
+ treeFrom , _ := test .Repository .TreeObject (plumbing .NewHash (
368
+ "a1eb2ea76eb7f9bfbde9b243861474421000eb96" ))
369
+ treeTo , _ := test .Repository .TreeObject (plumbing .NewHash (
370
+ "994eac1cd07235bb9815e547a75c84265dea00f5" ))
371
+ changes [0 ] = & object.Change {From : object.ChangeEntry {
372
+ Name : "analyser.go" ,
373
+ Tree : treeFrom ,
374
+ TreeEntry : object.TreeEntry {
375
+ Name : "analyser.go" ,
376
+ Mode : 0100644 ,
377
+ Hash : plumbing .NewHash ("dc248ba2b22048cc730c571a748e8ffcf7085ab9" ),
378
+ },
379
+ }, To : object.ChangeEntry {
380
+ Name : "analyser.go" ,
381
+ Tree : treeTo ,
382
+ TreeEntry : object.TreeEntry {
383
+ Name : "analyser.go" ,
384
+ Mode : 0100644 ,
385
+ Hash : plumbing .NewHash ("baa64828831d174f40140e4b3cfa77d1e917a2c1" ),
386
+ },
387
+ }}
388
+ changes [1 ] = & object.Change {From : object.ChangeEntry {}, To : object.ChangeEntry {
389
+ Name : "cmd/hercules/main.go" ,
390
+ Tree : treeTo ,
391
+ TreeEntry : object.TreeEntry {
392
+ Name : "cmd/hercules/main.go" ,
393
+ Mode : 0100644 ,
394
+ Hash : plumbing .NewHash ("c29112dbd697ad9b401333b80c18a63951bc18d9" ),
395
+ },
396
+ },
397
+ }
398
+ changes [2 ] = & object.Change {From : object.ChangeEntry {}, To : object.ChangeEntry {
399
+ Name : ".travis.yml" ,
400
+ Tree : treeTo ,
401
+ TreeEntry : object.TreeEntry {
402
+ Name : ".travis.yml" ,
403
+ Mode : 0100644 ,
404
+ Hash : plumbing .NewHash ("291286b4ac41952cbd1389fda66420ec03c1a9fe" ),
405
+ },
406
+ },
407
+ }
408
+ deps [items .DependencyTreeChanges ] = changes
409
+ fd := fixtures .FileDiff ()
410
+ filediff , err := fd .Consume (deps )
411
+ assert .Nil (t , err )
412
+ deps [items .DependencyFileDiff ] = filediff [items .DependencyFileDiff ]
413
+ deps [core .DependencyCommit ], _ = test .Repository .CommitObject (plumbing .NewHash (
414
+ "cce947b98a050c6d356bc6ba95030254914027b1" ))
415
+
416
+ // check that we survive merge + missing author
417
+ bd := BurndownAnalysis {PeopleNumber : 1 }
418
+ assert .Nil (t , bd .Initialize (test .Repository ))
419
+ deps [identity .DependencyAuthor ] = 0
420
+ deps [core .DependencyIsMerge ] = false
421
+ _ , err = bd .Consume (deps )
422
+ assert .Nil (t , err )
423
+
424
+ AddHash (t , cache , "4cdb0d969cf976f76634d1f348da3a175c9b4501" )
425
+ treeFrom , _ = test .Repository .TreeObject (plumbing .NewHash (
426
+ "994eac1cd07235bb9815e547a75c84265dea00f5" ))
427
+ treeTo , _ = test .Repository .TreeObject (plumbing .NewHash (
428
+ "89f33a2320f6cd0bd3d16351cfc10bea7e3dce1a" ))
429
+ changes = object.Changes {
430
+ & object.Change {
431
+ From : object.ChangeEntry {
432
+ Name : ".travis.yml" ,
433
+ Tree : treeFrom ,
434
+ TreeEntry : object.TreeEntry {
435
+ Name : ".travis.yml" ,
436
+ Mode : 0100644 ,
437
+ Hash : plumbing .NewHash ("291286b4ac41952cbd1389fda66420ec03c1a9fe" ),
438
+ },
439
+ }, To : object.ChangeEntry {
440
+ Name : ".travis.yml" ,
441
+ Tree : treeTo ,
442
+ TreeEntry : object.TreeEntry {
443
+ Name : ".travis.yml" ,
444
+ Mode : 0100644 ,
445
+ Hash : plumbing .NewHash ("4cdb0d969cf976f76634d1f348da3a175c9b4501" ),
446
+ },
447
+ },
448
+ },
449
+ }
450
+ deps [items .DependencyTreeChanges ] = changes
451
+ filediff , err = fd .Consume (deps )
452
+ assert .Nil (t , err )
453
+ deps [items .DependencyFileDiff ] = filediff [items .DependencyFileDiff ]
454
+ deps [core .DependencyCommit ], _ = test .Repository .CommitObject (plumbing .NewHash (
455
+ "7ef5c47aa79a1b229e3227d9ffe2401dbcbeb22f" ))
456
+ deps [identity .DependencyAuthor ] = identity .AuthorMissing
457
+ deps [core .DependencyIsMerge ] = true
458
+ _ , err = bd .Consume (deps )
459
+ assert .Nil (t , err )
460
+ assert .Equal (t , identity .AuthorMissing , bd .mergedAuthor )
461
+ }
462
+
357
463
func bakeBurndownForSerialization (t * testing.T , firstAuthor , secondAuthor int ) (
358
464
BurndownResult , * BurndownAnalysis ) {
359
465
bd := BurndownAnalysis {
@@ -362,7 +468,7 @@ func bakeBurndownForSerialization(t *testing.T, firstAuthor, secondAuthor int) (
362
468
PeopleNumber : 2 ,
363
469
TrackFiles : true ,
364
470
}
365
- bd .Initialize (test .Repository )
471
+ assert . Nil ( t , bd .Initialize (test .Repository ) )
366
472
deps := map [string ]interface {}{}
367
473
// stage 1
368
474
deps [identity .DependencyAuthor ] = firstAuthor
@@ -502,7 +608,7 @@ func TestBurndownSerialize(t *testing.T) {
502
608
bd := & BurndownAnalysis {}
503
609
504
610
buffer := & bytes.Buffer {}
505
- bd .Serialize (out , false , buffer )
611
+ assert . Nil ( t , bd .Serialize (out , false , buffer ) )
506
612
assert .Equal (t , buffer .String (), ` granularity: 30
507
613
sampling: 30
508
614
"project": |-
@@ -581,7 +687,7 @@ func TestBurndownSerializeAuthorMissing(t *testing.T) {
581
687
bd := & BurndownAnalysis {}
582
688
583
689
buffer := & bytes.Buffer {}
584
- bd .Serialize (out , false , buffer )
690
+ assert . Nil ( t , bd .Serialize (out , false , buffer ) )
585
691
assert .Equal (t , buffer .String (), ` granularity: 30
586
692
sampling: 30
587
693
"project": |-
0 commit comments