Files
baseapi/utils/typeconv_test.go
2019-04-04 21:03:10 +08:00

87 lines
1.4 KiB
Go

package utils
import (
"encoding/json"
"testing"
"time"
)
func TestConv(t *testing.T) {
for _, v := range [][]interface{}{
[]interface{}{
json.Number("123"),
int64(123),
},
[]interface{}{
json.Number("abc"),
int64(0),
},
[]interface{}{
"123",
int64(0),
},
[]interface{}{
int64(123),
int64(123),
},
} {
data := Interface2Int64WithDefault(v[0], 0)
if data != v[1].(int64) {
t.Fatal("Interface2Int64WithDefault failed")
}
}
}
func TestMarshal(t *testing.T) {
type InnerStruct struct {
InnerIntData int
}
type OutStruct struct {
InnerStruct
IntData int
StrData string
InnerData InnerStruct
PtrInnerData *InnerStruct
}
type OutStruct2 struct {
*InnerStruct
IntData int
StrData string
}
obj := OutStruct{
InnerStruct: InnerStruct{
InnerIntData: 3,
},
IntData: 1,
StrData: "2",
InnerData: InnerStruct{
InnerIntData: 4,
},
}
t.Log(Format4Output(obj, false))
t.Log(Format4Output(Struct2FlatMap(obj), false))
obj2 := OutStruct2{
InnerStruct: &InnerStruct{
InnerIntData: 2,
},
}
t.Log(Format4Output(obj2, false))
t.Log(Format4Output(Struct2FlatMap(obj2), false))
}
func TestTime(t *testing.T) {
for _, v := range [][]interface{}{
[]interface{}{
"2019-04-01",
Str2Time("2019-04-01 00:00:00"),
},
} {
data := Str2Time(v[0].(string))
if data != v[1].(time.Time) {
t.Fatal("Interface2Int64WithDefault failed")
}
}
}