| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | package herculesimport (	"testing"	"github.com/stretchr/testify/assert"	"gopkg.in/src-d/go-git.v4/plumbing/object"	"gopkg.in/src-d/go-git.v4/plumbing")func TestBurndownMeta(t *testing.T) {	burndown := BurndownAnalysis{}	assert.Equal(t, burndown.Name(), "Burndown")	assert.Equal(t, len(burndown.Provides()), 0)	required := [...]string{"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(		"4d3f9500c2b9dc10925ad1705926b67f0f9101ca"))	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	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)}
 |