Home | History | Annotate | Download | only in mappers
      1 package mappers
      2 
      3 import (
      4 	"strings"
      5 	"testing"
      6 
      7 	"github.com/stretchr/testify/assert"
      8 	c "repodiff/constants"
      9 	e "repodiff/entities"
     10 )
     11 
     12 func TestCSVLineToDiffRow(t *testing.T) {
     13 	exampleLine := "2018/02/20,platform/vendor/unbundled_google/packages/Ears,platform/vendor/unbundled_google/packages/Ears,Modified Projects,34,7,25,32,0"
     14 	columns := strings.Split(exampleLine, ",")
     15 	diffRow, err := CSVLineToDiffRow(columns)
     16 
     17 	expected := e.DiffRow{
     18 		Date:                 "2018/02/20",
     19 		DownstreamProject:    "platform/vendor/unbundled_google/packages/Ears",
     20 		UpstreamProject:      "platform/vendor/unbundled_google/packages/Ears",
     21 		DiffStatus:           3,
     22 		FilesChanged:         34,
     23 		LineInsertions:       7,
     24 		LineDeletions:        25,
     25 		LineChanges:          32,
     26 		CommitsNotUpstreamed: 0,
     27 	}
     28 	assert.Equal(t, nil, err, "Error should be nil")
     29 	assert.Equal(t, expected, *diffRow, "Entities should be identical")
     30 }
     31 
     32 func TestCSVLineToCommitRow(t *testing.T) {
     33 	exampleLine := "2018/02/20,61d5e61b6b6dfbf52d0d433759da964db31cc106,platform/tools/external/gradle,alruiz (a] google.com,Added Gradle 1.8 to prebuilts."
     34 	columns := strings.Split(exampleLine, ",")
     35 	commitRow, err := CSVLineToCommitRow(columns)
     36 
     37 	expected := e.CommitRow{
     38 		Date:              "2018/02/20",
     39 		Commit:            "61d5e61b6b6dfbf52d0d433759da964db31cc106",
     40 		DownstreamProject: "platform/tools/external/gradle",
     41 		Author:            "alruiz (a] google.com",
     42 		Subject:           "Added Gradle 1.8 to prebuilts.",
     43 	}
     44 	assert.Equal(t, nil, err, "Error should be nil")
     45 	assert.Equal(t, expected, *commitRow, "Entities should be identical")
     46 }
     47 
     48 func TestDiffRowsToAggregateChangesOverTime(t *testing.T) {
     49 	rows := DiffRowsToAggregateChangesOverTime(
     50 		[]e.AnalyzedDiffRow{
     51 			makeDiffRow(3, 1, 2),
     52 			makeDiffRow(3, 3, 4),
     53 			makeDiffRow(2, 7, 6),
     54 		},
     55 	)
     56 	cols := rows[0]
     57 
     58 	expected := []interface{}{
     59 		"2018022315",
     60 		2,
     61 		11,
     62 		12,
     63 	}
     64 	assert.Equal(t, expected, cols, "Columns should be equal")
     65 }
     66 
     67 func makeDiffRow(status, lineChanges, filesChanged int) e.AnalyzedDiffRow {
     68 	return e.AnalyzedDiffRow{
     69 		DiffRow: e.DiffRow{
     70 			DiffStatus:        status,
     71 			LineChanges:       lineChanges,
     72 			FilesChanged:      filesChanged,
     73 			DBInsertTimestamp: 1519427445,
     74 		},
     75 		Type: c.Empty,
     76 	}
     77 }
     78 
     79 func TestGetAuthorTechAreaUnknown(t *testing.T) {
     80 	fakeAuthor := "arthur.digby.sellers (a] google.com"
     81 	techArea := GetAuthorTechArea(fakeAuthor)
     82 	assert.Equal(t, "Unknown", techArea, "Author tech area should be unknown")
     83 }
     84 
     85 func TestGetAuthorTechAreaKnown(t *testing.T) {
     86 	fakeAuthor := "jeffrey.lebowski (a] google.com"
     87 	techArea := GetAuthorTechArea(fakeAuthor)
     88 	assert.Equal(t, "Build", techArea, "Jeffrey Lebowski is on the Build team")
     89 }
     90