+ Helper: MapDel, Throw
This commit is contained in:
parent
53b63557f8
commit
747b395e3d
6 changed files with 98 additions and 0 deletions
|
|
@ -31,3 +31,9 @@ func MapSet(record map[string]interface{}, key string, value interface{}) map[st
|
||||||
record[key] = value
|
record[key] = value
|
||||||
return record
|
return record
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MapDel xiang.helper.MapDel 删除数值并返回新映射表
|
||||||
|
func MapDel(record map[string]interface{}, key string) map[string]interface{} {
|
||||||
|
delete(record, key)
|
||||||
|
return record
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,3 +32,11 @@ func ProcessMapSet(process *gou.Process) interface{} {
|
||||||
value := process.Args[2]
|
value := process.Args[2]
|
||||||
return MapSet(record, key, value)
|
return MapSet(record, key, value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ProcessMapDel xiang.helper.MapDel 返回映射表给定键的值
|
||||||
|
func ProcessMapDel(process *gou.Process) interface{} {
|
||||||
|
process.ValidateArgNums(2)
|
||||||
|
record := process.ArgsMap(0)
|
||||||
|
key := process.ArgsString(1)
|
||||||
|
return MapDel(record, key)
|
||||||
|
}
|
||||||
|
|
|
||||||
51
helper/map_test.go
Normal file
51
helper/map_test.go
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
package helper
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/yaoapp/gou"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestProcessMapDel(t *testing.T) {
|
||||||
|
args := []interface{}{
|
||||||
|
map[string]interface{}{"foo": "Value1", "bar": "Value2"},
|
||||||
|
"bar",
|
||||||
|
}
|
||||||
|
new := gou.NewProcess("xiang.helper.MapDel", args...).Run().(map[string]interface{})
|
||||||
|
_, has := new["bar"]
|
||||||
|
assert.False(t, has)
|
||||||
|
assert.Equal(t, "Value1", new["foo"])
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestProcessGetSet(t *testing.T) {
|
||||||
|
args := []interface{}{
|
||||||
|
map[string]interface{}{"foo": "Value1"},
|
||||||
|
"bar",
|
||||||
|
"Value2",
|
||||||
|
}
|
||||||
|
new := gou.NewProcess("xiang.helper.MapSet", args...).Run().(map[string]interface{})
|
||||||
|
assert.Equal(t, "Value1", new["foo"])
|
||||||
|
assert.Equal(t, "Value2", new["bar"])
|
||||||
|
|
||||||
|
bar := gou.NewProcess("xiang.helper.MapGet", new, "bar").Run().(string)
|
||||||
|
assert.Equal(t, "Value2", bar)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestProcessMapKeys(t *testing.T) {
|
||||||
|
args := []interface{}{
|
||||||
|
map[string]interface{}{"foo": "Value1", "bar": "Value2"},
|
||||||
|
}
|
||||||
|
keys := gou.NewProcess("xiang.helper.MapKeys", args...).Run().([]string)
|
||||||
|
assert.Contains(t, keys, "foo")
|
||||||
|
assert.Contains(t, keys, "bar")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestProcessMapValues(t *testing.T) {
|
||||||
|
args := []interface{}{
|
||||||
|
map[string]interface{}{"foo": "Value1", "bar": "Value2"},
|
||||||
|
}
|
||||||
|
values := gou.NewProcess("xiang.helper.MapValues", args...).Run().([]interface{})
|
||||||
|
assert.Contains(t, values, "Value1")
|
||||||
|
assert.Contains(t, values, "Value2")
|
||||||
|
}
|
||||||
|
|
@ -19,6 +19,7 @@ func init() {
|
||||||
gou.RegisterProcessHandler("xiang.helper.MapValues", ProcessMapValues)
|
gou.RegisterProcessHandler("xiang.helper.MapValues", ProcessMapValues)
|
||||||
gou.RegisterProcessHandler("xiang.helper.MapGet", ProcessMapGet)
|
gou.RegisterProcessHandler("xiang.helper.MapGet", ProcessMapGet)
|
||||||
gou.RegisterProcessHandler("xiang.helper.MapSet", ProcessMapSet)
|
gou.RegisterProcessHandler("xiang.helper.MapSet", ProcessMapSet)
|
||||||
|
gou.RegisterProcessHandler("xiang.helper.MapDel", ProcessMapDel)
|
||||||
|
|
||||||
gou.RegisterProcessHandler("xiang.helper.StrConcat", ProcessStrConcat)
|
gou.RegisterProcessHandler("xiang.helper.StrConcat", ProcessStrConcat)
|
||||||
|
|
||||||
|
|
@ -41,6 +42,7 @@ func init() {
|
||||||
gou.RegisterProcessHandler("xiang.helper.EnvMultiGet", ProcessEnvMultiGet)
|
gou.RegisterProcessHandler("xiang.helper.EnvMultiGet", ProcessEnvMultiGet)
|
||||||
|
|
||||||
gou.RegisterProcessHandler("xiang.helper.Print", ProcessPrint)
|
gou.RegisterProcessHandler("xiang.helper.Print", ProcessPrint)
|
||||||
|
gou.RegisterProcessHandler("xiang.helper.Throw", ProcessThrow)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
15
helper/throw.process.go
Normal file
15
helper/throw.process.go
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
package helper
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/yaoapp/gou"
|
||||||
|
"github.com/yaoapp/kun/exception"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ProcessThrow xiang.helper.Throw 抛出异常
|
||||||
|
func ProcessThrow(process *gou.Process) interface{} {
|
||||||
|
process.ValidateArgNums(2)
|
||||||
|
message := process.ArgsString(0)
|
||||||
|
code := process.ArgsInt(1)
|
||||||
|
exception.New(message, code).Throw()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
16
helper/throw_test.go
Normal file
16
helper/throw_test.go
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
package helper
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/yaoapp/gou"
|
||||||
|
"github.com/yaoapp/kun/exception"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestProcessThrow(t *testing.T) {
|
||||||
|
e := exception.New("Someting error", 500)
|
||||||
|
assert.PanicsWithValue(t, *e, func() {
|
||||||
|
gou.NewProcess("xiang.helper.Throw", "Someting error", 500).Run()
|
||||||
|
})
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue