1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-03-29 22:07:14 +02:00

Added custom type as a context key

This commit is contained in:
Tim Voronov 2018-10-05 20:29:42 -04:00
parent 51d794d6c1
commit 54fb111040
2 changed files with 16 additions and 4 deletions
pkg/runtime/core

@ -2,7 +2,9 @@ package core
import "context"
const paramsKey = "params"
type key int
const paramsKey key = 0
func ParamsWith(ctx context.Context, params map[string]Value) context.Context {
return context.WithValue(ctx, paramsKey, params)

@ -16,9 +16,12 @@ func TestParamsWith(t *testing.T) {
p["val2"] = values.NewString("test")
pc := core.ParamsWith(context.Background(), p)
So(pc, ShouldNotBeNil)
So(pc.Value("params"), ShouldEqual, p)
out, err := core.ParamsFrom(pc)
So(err, ShouldBeNil)
So(out, ShouldEqual, p)
})
}
@ -36,10 +39,17 @@ func TestParamsFrom(t *testing.T) {
pf, err := core.ParamsFrom(ctx)
So(err, ShouldNotBeNil)
So(pf, ShouldBeNil)
ctx = context.WithValue(context.Background(), "params", p)
pf, err = core.ParamsFrom(ctx)
So(err, ShouldNotBeNil)
So(pf, ShouldBeNil)
ctx = core.ParamsWith(context.Background(), p)
pf, err = core.ParamsFrom(ctx)
So(err, ShouldBeNil)
So(pf, ShouldEqual, p)
})
@ -60,7 +70,7 @@ func TestParamFrom(t *testing.T) {
So(err, ShouldNotBeNil)
ctx = context.WithValue(context.Background(), "params", p)
ctx = core.ParamsWith(context.Background(), p)
v, err := core.ParamFrom(ctx, "val1")
So(err, ShouldBeNil)