1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-08-15 20:02:56 +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

View File

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

View File

@@ -16,9 +16,12 @@ func TestParamsWith(t *testing.T) {
p["val2"] = values.NewString("test") p["val2"] = values.NewString("test")
pc := core.ParamsWith(context.Background(), p) pc := core.ParamsWith(context.Background(), p)
So(pc, ShouldNotBeNil) 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) pf, err := core.ParamsFrom(ctx)
So(err, ShouldNotBeNil) So(err, ShouldNotBeNil)
So(pf, ShouldBeNil)
ctx = context.WithValue(context.Background(), "params", p) ctx = context.WithValue(context.Background(), "params", p)
pf, err = core.ParamsFrom(ctx) 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(err, ShouldBeNil)
So(pf, ShouldEqual, p) So(pf, ShouldEqual, p)
}) })
@@ -60,7 +70,7 @@ func TestParamFrom(t *testing.T) {
So(err, ShouldNotBeNil) So(err, ShouldNotBeNil)
ctx = context.WithValue(context.Background(), "params", p) ctx = core.ParamsWith(context.Background(), p)
v, err := core.ParamFrom(ctx, "val1") v, err := core.ParamFrom(ctx, "val1")
So(err, ShouldBeNil) So(err, ShouldBeNil)