Ai
1 Star 0 Fork 0

ghosind/utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
value_test.go 1.89 KB
一键复制 编辑 原始数据 按行查看 历史
ghosind 提交于 2023-08-18 00:35 +08:00 . test: add assert lib.
package utils
import (
"reflect"
"testing"
"github.com/ghosind/go-assert"
)
func TestPointer(t *testing.T) {
a := assert.New(t)
v := 1
vp := Pointer(v)
a.EqualNow(reflect.TypeOf(vp).Kind(), reflect.Ptr)
a.NotNilNow(vp)
a.EqualNow(*vp, v)
}
func TestValue(t *testing.T) {
a := assert.New(t)
v := 1
vp := &v
pv := Value(vp)
a.EqualNow(pv, v)
vp = nil
pv = Value(vp)
a.EqualNow(pv, 0)
}
func TestValueWithDefault(t *testing.T) {
a := assert.New(t)
defaultVal := 2
v := 1
vp := &v
pv := ValueWithDefault(vp, defaultVal)
a.EqualNow(pv, v)
vp = nil
pv = ValueWithDefault(vp, defaultVal)
a.EqualNow(pv, defaultVal)
}
func TestPointerSlice(t *testing.T) {
a := assert.New(t)
arr := []int{0, 1, 2, 3, 4, 5, 6}
ret := PointerSlice(arr)
for i, p := range ret {
a.NotNilNow(p)
a.EqualNow(*p, arr[i])
}
}
func TestValueSlice(t *testing.T) {
a := assert.New(t)
arr := []*int{
Pointer(1),
Pointer(2),
Pointer(3),
nil,
Pointer(5),
Pointer(6),
}
ret := ValueSlice(arr)
zero := 0
for i, e := range arr {
v := ret[i]
if e != nil {
a.EqualNow(*e, v)
} else {
a.EqualNow(v, zero)
}
}
}
func TestPointerMap(t *testing.T) {
a := assert.New(t)
greetings := map[string]string{
"en": "Hello",
"fr": "Bonjour",
"zh_cn": "你好",
}
ret := PointerMap(greetings)
a.EqualNow(len(ret), len(greetings))
for k, v := range greetings {
a.NotNilNow(ret[k])
a.EqualNow(*ret[k], v)
}
for k := range ret {
_, ok := greetings[k]
a.TrueNow(ok)
}
}
func TestValueMap(t *testing.T) {
a := assert.New(t)
greetings := map[string]*string{
"en": Pointer("Hello"),
"fr": nil,
"zh_cn": Pointer("你好"),
}
ret := ValueMap(greetings)
for k, v := range greetings {
if v == nil {
_, ok := ret[k]
a.NotTrueNow(ok)
} else if *v != ret[k] {
a.EqualNow(ret[k], *v)
}
}
for k := range ret {
_, ok := greetings[k]
a.TrueNow(ok)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/ghosind/utils.git
git@gitee.com:ghosind/utils.git
ghosind
utils
utils
main

搜索帮助