generated from parrogo/gomod
-
Notifications
You must be signed in to change notification settings - Fork 0
/
horzmerge_test.go
85 lines (65 loc) · 1.82 KB
/
horzmerge_test.go
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package horzmerge
import (
"bufio"
"bytes"
"embed"
"io/fs"
"testing"
"github.com/stretchr/testify/require"
)
//go:embed fixtures
var fixtureRootFS embed.FS
var fixtureFS, _ = fs.Sub(fixtureRootFS, "fixtures")
func TestMerge(t *testing.T) {
t.Run("checkHeaders", func(t *testing.T) {
require := require.New(t)
source1, err := fixtureFS.Open("andre")
require.NoError(err)
err = checkHeaders(bufio.NewReader(source1), []string{
" name", " gender", " age", " f1", " f2", " f3",
})
require.NoError(err)
source1.Close()
source1, err = fixtureFS.Open("andre")
require.NoError(err)
err = checkHeaders(bufio.NewReader(source1), []string{
" name", " gender", " age", " f1", " f2", " f3",
})
require.EqualError(err, "field header 1 differs: expected ` gender`, got ` gender`")
source1.Close()
source1, err = fixtureFS.Open("andre")
require.NoError(err)
err = checkHeaders(bufio.NewReader(source1), []string{
" age", " f1", " f2", " f3",
})
require.EqualError(err, "headers len differs: expected 4, got 6")
})
t.Run("readHeaders", func(t *testing.T) {
require := require.New(t)
source1, err := fixtureFS.Open("andre")
require.NoError(err)
headers, err := readHeaders(bufio.NewReader(source1))
require.NoError(err)
require.Equal([]string{
" name", " gender", " age", " f1", " f2", " f3",
}, headers)
})
t.Run("Merge", func(t *testing.T) {
require := require.New(t)
source1, err := fixtureFS.Open("andre")
require.NoError(err)
source2, err := fixtureFS.Open("tati")
require.NoError(err)
var buf bytes.Buffer
Merge(Options{
Empty: "a",
Target: &buf,
}, source1, source2)
require.NoError(err)
actual := buf.String()
expected :=
/* */ " name gender age f1 f2 f3\n" +
/**/ " andre m 45 X b c\n"
require.Equal(expected, actual)
})
}