82 lines
2.9 KiB
Go
82 lines
2.9 KiB
Go
|
|
package app
|
||
|
|
|
||
|
|
import (
|
||
|
|
"fmt"
|
||
|
|
|
||
|
|
. "code.hoteas.com/golang/hotime"
|
||
|
|
. "code.hoteas.com/golang/hotime/common"
|
||
|
|
)
|
||
|
|
|
||
|
|
var ExpectDemoTest = CtrTest{
|
||
|
|
"string_result": {Desc: "返回字符串", Func: func(a *Api) {
|
||
|
|
a.Get("result是字符串", 0, "操作成功")
|
||
|
|
}},
|
||
|
|
"number_result": {Desc: "返回整数", Func: func(a *Api) {
|
||
|
|
a.Get("result是整数", 0, int64(1))
|
||
|
|
}},
|
||
|
|
"float_result": {Desc: "返回小数", Func: func(a *Api) {
|
||
|
|
a.Get("result是小数", 0, float64(1.0))
|
||
|
|
}},
|
||
|
|
"bool_result": {Desc: "返回布尔", Func: func(a *Api) {
|
||
|
|
a.Get("result是布尔", 0, true)
|
||
|
|
}},
|
||
|
|
"map_result": {Desc: "返回对象", Func: func(a *Api) {
|
||
|
|
a.Get("result是Map-校验字段名和类型", 0, Map{
|
||
|
|
"id": int64(1), "name": "sample", "price": float64(1.0), "in_stock": true,
|
||
|
|
})
|
||
|
|
}},
|
||
|
|
"nested_result": {Desc: "返回嵌套对象", Func: func(a *Api) {
|
||
|
|
a.Get("深层嵌套Map+Slice+Map", 0, Map{
|
||
|
|
"id": int64(1), "title": "sample",
|
||
|
|
"customer": Map{"id": int64(1), "name": "sample", "phone": "sample"},
|
||
|
|
"items": Slice{Map{
|
||
|
|
"id": int64(1), "goods_name": "sample", "quantity": int64(1), "price": float64(1.0),
|
||
|
|
}},
|
||
|
|
"extra": Map{
|
||
|
|
"delivery": Map{"address": "sample", "fee": int64(1)},
|
||
|
|
},
|
||
|
|
})
|
||
|
|
}},
|
||
|
|
"slice_result": {Desc: "返回数组", Func: func(a *Api) {
|
||
|
|
a.Get("result直接是Slice", 0, Slice{Map{"id": int64(1), "name": "sample"}})
|
||
|
|
}},
|
||
|
|
"error_demo": {Desc: "错误+成功混合", Func: func(a *Api) {
|
||
|
|
a.Form(Map{"name": ""}).Post("名称为空-错误断言", 3, "名称不能为空")
|
||
|
|
a.Form(Map{"name": "测试"}).Post("名称正确-结构校验", 0, Map{
|
||
|
|
"id": int64(1), "name": "sample", "created": true,
|
||
|
|
})
|
||
|
|
}},
|
||
|
|
"no_expect": {Desc: "不传预期(仅校验status)", Func: func(a *Api) {
|
||
|
|
a.Get("只校验status=0", 0)
|
||
|
|
}},
|
||
|
|
"verify_demo": {Desc: "Verify数据库校验", Func: func(a *Api) {
|
||
|
|
a.Form(Map{"name": ""}).Post("名称为空", 3, "名称不能为空")
|
||
|
|
|
||
|
|
a.Form(Map{"name": "verify_test"}).
|
||
|
|
Verify(func(a *Api) error {
|
||
|
|
row := a.DB().Get("test_batch", "*", Map{"AND": Map{"name": "verify_test", "title": "verify_demo"}})
|
||
|
|
if row == nil {
|
||
|
|
return fmt.Errorf("test_batch 表未找到 name=verify_test 的记录")
|
||
|
|
}
|
||
|
|
if row.GetCeilInt64("state") != 0 {
|
||
|
|
return fmt.Errorf("test_batch.state 期望 0, 实际 %d", row.GetCeilInt64("state"))
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}).
|
||
|
|
Post("写入并校验DB-正确", 0, Map{"id": int64(1), "name": "sample"})
|
||
|
|
|
||
|
|
a.Form(Map{"name": "verify_fail"}).
|
||
|
|
Verify(func(a *Api) error {
|
||
|
|
row := a.DB().Get("test_batch", "*", Map{"AND": Map{"name": "verify_fail", "title": "verify_demo"}})
|
||
|
|
if row == nil {
|
||
|
|
return fmt.Errorf("test_batch 表未找到 name=verify_fail 的记录")
|
||
|
|
}
|
||
|
|
if row.GetCeilInt64("state") != 99 {
|
||
|
|
return fmt.Errorf("test_batch.state 期望 99, 实际 %d(接口写入的是0,这里故意校验99来演示失败效果)", row.GetCeilInt64("state"))
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}).
|
||
|
|
Post("写入并校验DB-故意失败", 0, Map{"id": int64(1), "name": "sample"})
|
||
|
|
}},
|
||
|
|
}
|