| package mappers | 
 |  | 
 | import ( | 
 | 	"strings" | 
 | 	"testing" | 
 |  | 
 | 	"github.com/stretchr/testify/assert" | 
 | 	c "repodiff/constants" | 
 | 	e "repodiff/entities" | 
 | ) | 
 |  | 
 | func TestCSVLineToDiffRow(t *testing.T) { | 
 | 	exampleLine := "2018/02/20,platform/vendor/unbundled_google/packages/Ears,platform/vendor/unbundled_google/packages/Ears,Modified Projects,34,7,25,32,0" | 
 | 	columns := strings.Split(exampleLine, ",") | 
 | 	diffRow, err := CSVLineToDiffRow(columns) | 
 |  | 
 | 	expected := e.DiffRow{ | 
 | 		Date:                 "2018/02/20", | 
 | 		DownstreamProject:    "platform/vendor/unbundled_google/packages/Ears", | 
 | 		UpstreamProject:      "platform/vendor/unbundled_google/packages/Ears", | 
 | 		DiffStatus:           3, | 
 | 		FilesChanged:         34, | 
 | 		LineInsertions:       7, | 
 | 		LineDeletions:        25, | 
 | 		LineChanges:          32, | 
 | 		CommitsNotUpstreamed: 0, | 
 | 	} | 
 | 	assert.Equal(t, nil, err, "Error should be nil") | 
 | 	assert.Equal(t, expected, *diffRow, "Entities should be identical") | 
 | } | 
 |  | 
 | func TestCSVLineToCommitRow(t *testing.T) { | 
 | 	exampleLine := "2018/02/20,61d5e61b6b6dfbf52d0d433759da964db31cc106,platform/tools/external/gradle,alruiz@google.com,Added Gradle 1.8 to prebuilts." | 
 | 	columns := strings.Split(exampleLine, ",") | 
 | 	commitRow, err := CSVLineToCommitRow(columns) | 
 |  | 
 | 	expected := e.CommitRow{ | 
 | 		Date:              "2018/02/20", | 
 | 		Commit:            "61d5e61b6b6dfbf52d0d433759da964db31cc106", | 
 | 		DownstreamProject: "platform/tools/external/gradle", | 
 | 		Author:            "alruiz@google.com", | 
 | 		Subject:           "Added Gradle 1.8 to prebuilts.", | 
 | 	} | 
 | 	assert.Equal(t, nil, err, "Error should be nil") | 
 | 	assert.Equal(t, expected, *commitRow, "Entities should be identical") | 
 | } | 
 |  | 
 | func TestDiffRowsToAggregateChangesOverTime(t *testing.T) { | 
 | 	rows := DiffRowsToAggregateChangesOverTime( | 
 | 		[]e.AnalyzedDiffRow{ | 
 | 			makeDiffRow(3, 1, 2), | 
 | 			makeDiffRow(3, 3, 4), | 
 | 			makeDiffRow(2, 7, 6), | 
 | 		}, | 
 | 	) | 
 | 	cols := rows[0] | 
 |  | 
 | 	expected := []interface{}{ | 
 | 		"2018022315", | 
 | 		2, | 
 | 		11, | 
 | 		12, | 
 | 	} | 
 | 	assert.Equal(t, expected, cols, "Columns should be equal") | 
 | } | 
 |  | 
 | func makeDiffRow(status, lineChanges, filesChanged int) e.AnalyzedDiffRow { | 
 | 	return e.AnalyzedDiffRow{ | 
 | 		DiffRow: e.DiffRow{ | 
 | 			DiffStatus:        status, | 
 | 			LineChanges:       lineChanges, | 
 | 			FilesChanged:      filesChanged, | 
 | 			DBInsertTimestamp: 1519427445, | 
 | 		}, | 
 | 		Type: c.Empty, | 
 | 	} | 
 | } | 
 |  | 
 | func TestGetAuthorTechAreaUnknown(t *testing.T) { | 
 | 	fakeAuthor := "arthur.digby.sellers@google.com" | 
 | 	techArea := GetAuthorTechArea(fakeAuthor) | 
 | 	assert.Equal(t, "Unknown", techArea, "Author tech area should be unknown") | 
 | } | 
 |  | 
 | func TestGetAuthorTechAreaKnown(t *testing.T) { | 
 | 	fakeAuthor := "jeffrey.lebowski@google.com" | 
 | 	techArea := GetAuthorTechArea(fakeAuthor) | 
 | 	assert.Equal(t, "Build", techArea, "Jeffrey Lebowski is on the Build team") | 
 | } |