Skip to content

Commit 2eb77a8

Browse files
committed
Wrote tests for dataconversion
1 parent e3713c8 commit 2eb77a8

File tree

1 file changed

+212
-0
lines changed

1 file changed

+212
-0
lines changed
Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
package dataconversion
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestNewDataConverter(t *testing.T) {
8+
tests := []struct {
9+
name string
10+
want *DataConverter
11+
}{
12+
{
13+
name: "Test NewDataConverter",
14+
want: &DataConverter{},
15+
},
16+
}
17+
for _, tt := range tests {
18+
t.Run(tt.name, func(t *testing.T) {
19+
if got := NewDataConverter(); got == nil {
20+
t.Errorf("NewDataConverter() = %v, want %v", got, tt.want)
21+
}
22+
})
23+
}
24+
}
25+
26+
func TestDataConverter_StructToJSONString(t *testing.T) {
27+
type fields struct {
28+
}
29+
type args struct {
30+
data interface{}
31+
}
32+
tests := []struct {
33+
name string
34+
fields fields
35+
args args
36+
want string
37+
wantErr bool
38+
}{
39+
{
40+
name: "Test StructToJSONString",
41+
args: args{
42+
data: struct {
43+
YourName string `json:"your_name" yaml:"your_name"`
44+
}{YourName: "Brett"},
45+
},
46+
want: "{\"your_name\":\"Brett\"}\n",
47+
wantErr: false,
48+
},
49+
{
50+
name: "Test StructToJSONString with error",
51+
args: args{
52+
data: make(chan int),
53+
},
54+
want: "",
55+
wantErr: true,
56+
},
57+
}
58+
for _, tt := range tests {
59+
t.Run(tt.name, func(t *testing.T) {
60+
dc := &DataConverter{}
61+
got, err := dc.StructToJSONString(tt.args.data)
62+
if (err != nil) != tt.wantErr {
63+
t.Errorf("DataConverter.StructToJSONString() error = %v, wantErr %v", err, tt.wantErr)
64+
return
65+
}
66+
if got != tt.want {
67+
t.Errorf("DataConverter.StructToJSONString() = %v, want %v", got, tt.want)
68+
}
69+
})
70+
}
71+
}
72+
73+
func TestDataConverter_StructToYAMLString(t *testing.T) {
74+
type fields struct {
75+
}
76+
type args struct {
77+
data interface{}
78+
}
79+
tests := []struct {
80+
name string
81+
fields fields
82+
args args
83+
want string
84+
wantErr bool
85+
}{
86+
{
87+
name: "Test StructToYAMLString",
88+
args: args{
89+
data: struct {
90+
YourName string `json:"your_name" yaml:"your_name"`
91+
}{YourName: "Brett"},
92+
},
93+
want: "---\nyour_name: Brett\n",
94+
wantErr: false,
95+
},
96+
}
97+
for _, tt := range tests {
98+
t.Run(tt.name, func(t *testing.T) {
99+
dc := &DataConverter{}
100+
got, err := dc.StructToYAMLString(tt.args.data)
101+
if (err != nil) != tt.wantErr {
102+
t.Errorf("DataConverter.StructToYAMLString() error = %v, wantErr %v", err, tt.wantErr)
103+
return
104+
}
105+
if got != tt.want {
106+
t.Errorf("DataConverter.StructToYAMLString() = %v, want %v", got, tt.want)
107+
}
108+
})
109+
}
110+
}
111+
112+
func TestDataConverter_JSONStringToStruct(t *testing.T) {
113+
type structData struct {
114+
YourName string `json:"your_name" yaml:"your_name"`
115+
}
116+
117+
type fields struct {
118+
}
119+
type args struct {
120+
structData *structData
121+
data string
122+
}
123+
tests := []struct {
124+
name string
125+
fields fields
126+
args args
127+
want interface{}
128+
wantErr bool
129+
}{
130+
{
131+
name: "Test JSONStringToStruct",
132+
args: args{
133+
structData: &structData{},
134+
data: "{\"your_name\":\"Brett\"}",
135+
},
136+
want: struct {
137+
YourName string `json:"your_name" yaml:"your_name"`
138+
}{YourName: "Brett"},
139+
wantErr: false,
140+
},
141+
{
142+
name: "Test JSONStringToStruct with error",
143+
args: args{
144+
structData: &structData{},
145+
data: "stuff",
146+
},
147+
want: nil,
148+
wantErr: true,
149+
},
150+
}
151+
for _, tt := range tests {
152+
t.Run(tt.name, func(t *testing.T) {
153+
dc := &DataConverter{}
154+
err := dc.JSONStringToStruct(tt.args.structData, tt.args.data)
155+
if (err != nil) != tt.wantErr {
156+
t.Errorf("DataConverter.JSONStringToStruct() error = %v, wantErr %v", err, tt.wantErr)
157+
return
158+
}
159+
})
160+
}
161+
}
162+
163+
func TestDataConverter_YAMLStringToStruct(t *testing.T) {
164+
type structData struct {
165+
YourName string `json:"your_name" yaml:"your_name"`
166+
}
167+
168+
type fields struct {
169+
}
170+
type args struct {
171+
structData *structData
172+
data string
173+
}
174+
tests := []struct {
175+
name string
176+
fields fields
177+
args args
178+
want interface{}
179+
wantErr bool
180+
}{
181+
{
182+
name: "Test YAMLStringToStruct",
183+
args: args{
184+
structData: &structData{},
185+
data: "---\nyour_name: Brett\n",
186+
},
187+
want: struct {
188+
YourName string `json:"your_name" yaml:"your_name"`
189+
}{YourName: "Brett"},
190+
wantErr: false,
191+
},
192+
{
193+
name: "Test YAMLStringToStruct with error",
194+
args: args{
195+
structData: &structData{},
196+
data: "stuff",
197+
},
198+
want: nil,
199+
wantErr: true,
200+
},
201+
}
202+
for _, tt := range tests {
203+
t.Run(tt.name, func(t *testing.T) {
204+
dc := &DataConverter{}
205+
err := dc.YAMLStringToStruct(tt.args.structData, tt.args.data)
206+
if (err != nil) != tt.wantErr {
207+
t.Errorf("DataConverter.YAMLStringToStruct() error = %v, wantErr %v", err, tt.wantErr)
208+
return
209+
}
210+
})
211+
}
212+
}

0 commit comments

Comments
 (0)