/
struct_column_test.go
72 lines (63 loc) · 1.33 KB
/
struct_column_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
package poketto
import (
"testing"
"github.com/stretchr/testify/assert"
)
type User struct {
Id int
Name string
}
func TestStructColumnForMap(t *testing.T) {
u1 := User{
Id: 1,
Name: "uzi",
}
u2 := User{
Id: 2,
Name: "faker",
}
users := []User{u1, u2}
var desk map[int]User
if err := StructColumn(&desk, users, "", "Id"); err != nil {
assert.Fail(t, err.Error())
return
}
assert.Equal(t, len(desk), 2)
assert.Equal(t, desk[1].Name, u1.Name)
assert.Equal(t, desk[2].Name, u2.Name)
var desk2 map[int]string
if err := StructColumn(&desk2, users, "Name", "Id"); err != nil {
assert.Fail(t, err.Error())
return
}
assert.Equal(t, len(desk2), 2)
assert.Equal(t, desk2[1], u1.Name)
assert.Equal(t, desk2[2], u2.Name)
}
func TestStructColumnForSlice(t *testing.T) {
u1 := User{
Id: 1,
Name: "uzi",
}
u2 := User{
Id: 2,
Name: "faker",
}
users := []User{u1, u2}
var desk []int
if err := StructColumn(&desk, users, "Id", ""); err != nil {
assert.Fail(t, err.Error())
return
}
assert.Equal(t, len(desk), 2)
assert.Equal(t, desk[0], 1)
assert.Equal(t, desk[1], 2)
var desk2 []string
if err := StructColumn(&desk2, users, "Name", ""); err != nil {
assert.Fail(t, err.Error())
return
}
assert.Equal(t, len(desk2), 2)
assert.Equal(t, desk2[0], "uzi")
assert.Equal(t, desk2[1], "faker")
}