Files
baseapi/utils/utils_test.go
2018-06-19 18:41:58 +08:00

77 lines
1.6 KiB
Go

package utils
import (
"fmt"
"testing"
)
func TestDictKeysMan(t *testing.T) {
testData := map[string]interface{}{"k1": "v1", "k2": "v2"}
result1 := DictKeysMan(testData, []string{"k1"}, nil).(map[string]interface{})
if _, ok := result1["k1"]; ok {
t.Error("Params keysToRemove can not remove key!")
}
if k2Value, ok := result1["k2"]; !ok {
t.Error("Params keysToRemove removed wrong key!")
} else {
k2ValueStr, _ := k2Value.(string)
if k2ValueStr != "v2" {
t.Logf("k2Value:%s", k2ValueStr)
t.Error("wrong data when removeKeys")
}
}
result2 := DictKeysMan([]interface{}{testData, map[string]string{"k1": "v11", "k2": "v22"}}, nil, []string{"k1"}).([]interface{})
result20 := result2[0].(map[string]interface{})
if _, ok := result20["k1"]; !ok {
t.Error("Params keysToKeep can not keep key!")
}
if _, ok := result20["k2"]; ok {
t.Error("Params keysToKeep keep wrong key!")
}
}
type TestModel struct {
IntData int
Int64Data int64
FloatData float64
StrData string
}
type TestModel2 struct {
IntData int
Int64Data int64
FloatData float64
AddData string
}
func unmarshStr(t *testing.T, jsonStr string, obj interface{}) {
err := UnmarshalUseNumber([]byte(jsonStr), obj)
if err != nil {
t.Fatal(err)
} else {
fmt.Println(obj)
}
}
func TestJson(t *testing.T) {
jsonStr := `
{
"IntData": 1,
"Int64Data": 1234567890123456,
"FloatData": 1234.5678,
"StrData": "str"
}
`
obj1 := make(map[string]interface{})
var obj2 interface{}
var obj3 TestModel
var obj4 TestModel2
unmarshStr(t, jsonStr, &obj1)
unmarshStr(t, jsonStr, &obj2)
unmarshStr(t, jsonStr, &obj3)
unmarshStr(t, jsonStr, &obj4)
}