1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
package filesystem
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestGenerateCSVLines(t *testing.T) {
lineCount := 0
err := GenerateCSVLines(
"testdata/project.csv",
func(columns []string) {
lineCount++
assert.Equal(t, 9, len(columns), "Fixture CSV Column Count")
},
)
assert.Equal(t, 670, lineCount, "Fixture CSV line count")
assert.Equal(t, nil, err, "Read CSV Error output")
}
func TestNonExistentFile(t *testing.T) {
err := GenerateCSVLines(
"this_file_totally_does_not_exist.csv",
func(columns []string) {},
)
assert.NotEqual(t, err, nil, "CSV Error should be generated")
}
func TestWriteCSVToFile(t *testing.T) {
outputPath := "testdata/generate.csv"
defer os.Remove(outputPath)
header := []string{
"col1",
"col2",
}
rowsOfCols := [][]string{
[]string{
"line1_val1",
"line1_val2",
},
[]string{
"line2_val1",
"line2_val2",
},
}
err := WriteCSVToFile(header, rowsOfCols, outputPath)
assert.Equal(t, err, nil, "Error should not be generated")
var reconstituted [][]string
err = GenerateCSVLines(
outputPath,
func(columns []string) {
assert.Equal(t, 2, len(columns), "Initial CSV ColumnCount")
reconstituted = append(reconstituted, columns)
},
)
assert.Equal(t, nil, err, "No error should exist reading created CSV")
assert.Equal(t, rowsOfCols, reconstituted, "Reconstituted should equal original")
}
|