| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | package herculesimport (	"testing"	"github.com/stretchr/testify/assert"	"gopkg.in/src-d/go-git.v4/plumbing"	"gopkg.in/src-d/go-git.v4/plumbing/object")func TestBurndownMeta(t *testing.T) {	burndown := BurndownAnalysis{}	assert.Equal(t, burndown.Name(), "Burndown")	assert.Equal(t, len(burndown.Provides()), 0)	required := [...]string{"file_diff", "renamed_changes", "blob_cache", "day", "author"}	for _, name := range required {		assert.Contains(t, burndown.Requires(), name)	}}func TestBurndownConsume(t *testing.T) {	burndown := BurndownAnalysis{		Granularity:  30,		Sampling:     30,		PeopleNumber: 1,	}	burndown.Initialize(testRepository)	deps := map[string]interface{}{}	deps["author"] = 0	deps["day"] = 0	cache := map[plumbing.Hash]*object.Blob{}	hash := plumbing.NewHash("291286b4ac41952cbd1389fda66420ec03c1a9fe")	cache[hash], _ = testRepository.BlobObject(hash)	hash = plumbing.NewHash("334cde09da4afcb74f8d2b3e6fd6cce61228b485")	cache[hash], _ = testRepository.BlobObject(hash)	hash = plumbing.NewHash("dc248ba2b22048cc730c571a748e8ffcf7085ab9")	cache[hash], _ = testRepository.BlobObject(hash)	deps["blob_cache"] = cache	changes := make(object.Changes, 2)	treeFrom, _ := testRepository.TreeObject(plumbing.NewHash(		"a1eb2ea76eb7f9bfbde9b243861474421000eb96"))	treeTo, _ := testRepository.TreeObject(plumbing.NewHash(		"994eac1cd07235bb9815e547a75c84265dea00f5"))	changes[0] = &object.Change{From: object.ChangeEntry{		Name: "analyser.go",		Tree: treeFrom,		TreeEntry: object.TreeEntry{			Name: "analyser.go",			Mode: 0100644,			Hash: plumbing.NewHash("dc248ba2b22048cc730c571a748e8ffcf7085ab9"),		},	}, To: object.ChangeEntry{		Name: "analyser.go",		Tree: treeTo,		TreeEntry: object.TreeEntry{			Name: "analyser.go",			Mode: 0100644,			Hash: plumbing.NewHash("334cde09da4afcb74f8d2b3e6fd6cce61228b485"),		},	}}	changes[1] = &object.Change{From: object.ChangeEntry{}, To: object.ChangeEntry{		Name: ".travis.yml",		Tree: treeTo,		TreeEntry: object.TreeEntry{			Name: ".travis.yml",			Mode: 0100644,			Hash: plumbing.NewHash("291286b4ac41952cbd1389fda66420ec03c1a9fe"),		},	},	}	deps["renamed_changes"] = changes	fd := fixtureFileDiff()	result, err := fd.Consume(deps)	assert.Nil(t, err)	deps["file_diff"] = result["file_diff"]	result, err = burndown.Consume(deps)	assert.Nil(t, result)	assert.Nil(t, err)	assert.Equal(t, burndown.previousDay, 0)	assert.Equal(t, len(burndown.files), 2)	assert.Equal(t, burndown.files[".travis.yml"].Len(), 12)	assert.Equal(t, burndown.files["analyser.go"].Len(), 309)	assert.Equal(t, len(burndown.people), 1)	assert.Equal(t, burndown.people[0][0], int64(12+309))	assert.Equal(t, len(burndown.globalStatus), 1)	assert.Equal(t, burndown.globalStatus[0], int64(12+309))	assert.Equal(t, len(burndown.globalHistory), 0)	assert.Equal(t, len(burndown.fileHistories), 0)	burndown = BurndownAnalysis{		Granularity:  30,		Sampling:     0,		PeopleNumber: 0,	}	burndown.Initialize(testRepository)	_, err = burndown.Consume(deps)	assert.Nil(t, err)	assert.Equal(t, len(burndown.people), 0)}
 |