Skip to content

Commit 64bb94d

Browse files
committed
test: add unit case coverage
1 parent d317a3a commit 64bb94d

File tree

3 files changed

+97
-2
lines changed

3 files changed

+97
-2
lines changed

build_test.go

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package excelorm
22

33
import (
4+
"github.com/stretchr/testify/assert"
45
"testing"
56
"time"
67
)
@@ -33,12 +34,54 @@ type Sheet2 struct {
3334
Col8 *float64 `excel_header:"float pointer"`
3435
Col9 *bool `excel_header:"bool pointer"`
3536
Col10 *time.Time `excel_header:"time pointer"`
37+
Col11 float32 `excel_header:"float32"`
3638
}
3739

3840
func (Sheet2) SheetName() string {
3941
return "sheet2"
4042
}
4143

44+
type Sheet3 struct {
45+
Col1 string `excel_header:"string"`
46+
}
47+
48+
func (Sheet3) SheetName() string {
49+
return ""
50+
}
51+
52+
type Sheet4 int
53+
54+
func (Sheet4) SheetName() string {
55+
return "sheet4"
56+
}
57+
58+
type Sheet5 struct {
59+
Col1 string
60+
}
61+
62+
func (Sheet5) SheetName() string {
63+
return "sheet5"
64+
}
65+
66+
type Sheet6 struct {
67+
Col1 map[string]string `excel_header:"map"`
68+
}
69+
70+
func (Sheet6) SheetName() string {
71+
return "sheet6"
72+
}
73+
74+
type subStruct struct {
75+
Field string `excel_header:"field"`
76+
}
77+
type Sheet7 struct {
78+
SubStruct subStruct `excel_header:"subStruct"`
79+
}
80+
81+
func (Sheet7) SheetName() string {
82+
return "sheet7"
83+
}
84+
4285
func TestBuild(t *testing.T) {
4386
sheet1 := Sheet1{
4487
Col1: "string",
@@ -68,10 +111,51 @@ func TestBuild(t *testing.T) {
68111
var models []SheetModel
69112
models = append(models, sheet1, sheet1, sheet1, sheet1, sheet1, sheet2, sheet2, sheet2, sheet2, sheet2)
70113

71-
err := Build("test.xlsx", models)
114+
err := Build("test1.xlsx", models)
72115
if err != nil {
73116
t.Error(err)
74117
}
118+
119+
sheet3 := Sheet3{
120+
Col1: "string",
121+
}
122+
123+
models = append(models, sheet3)
124+
err = Build("test3.xlsx", models)
125+
assert.EqualError(t, err, "sheetModel must have a sheet name")
126+
127+
sheet4 := Sheet4(1)
128+
models = make([]SheetModel, 0)
129+
models = append(models, sheet4)
130+
err = Build("test4.xlsx", models)
131+
assert.EqualError(t, err, "sheetModel must be struct")
132+
133+
sheet5 := Sheet5{
134+
Col1: "string",
135+
}
136+
models = make([]SheetModel, 0)
137+
models = append(models, sheet5)
138+
err = Build("test5.xlsx", models)
139+
140+
sheet6 := Sheet6{
141+
Col1: map[string]string{
142+
"key": "value",
143+
},
144+
}
145+
models = make([]SheetModel, 0)
146+
models = append(models, sheet6)
147+
err = Build("test6.xlsx", models)
148+
assert.EqualError(t, err, "unsupported type map")
149+
150+
sheet7 := Sheet7{
151+
SubStruct: subStruct{
152+
Field: "field",
153+
},
154+
}
155+
models = make([]SheetModel, 0)
156+
models = append(models, sheet7)
157+
err = Build("test7.xlsx", models)
158+
assert.EqualError(t, err, "unsupported type excelorm.subStruct")
75159
}
76160

77161
func TestWithTimeFormatLayout(t *testing.T) {

go.mod

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,10 @@ go 1.21.6
44

55
require github.com/360EntSecGroup-Skylar/excelize v1.4.1
66

7-
require github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
7+
require (
8+
github.com/davecgh/go-spew v1.1.1 // indirect
9+
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
10+
github.com/pmezard/go-difflib v1.0.0 // indirect
11+
github.com/stretchr/testify v1.8.4 // indirect
12+
gopkg.in/yaml.v3 v3.0.1 // indirect
13+
)

go.sum

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
88
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
99
github.com/stretchr/testify v1.2.3-0.20181224173747-660f15d67dbb h1:cRItZejS4Ok67vfCdrbGIaqk86wmtQNOjVD7jSyS2aw=
1010
github.com/stretchr/testify v1.2.3-0.20181224173747-660f15d67dbb/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
11+
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
12+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
13+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
14+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
15+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)