action handling: smarter testing with handler generator

This commit is contained in:
Helmut Merz 2023-07-07 19:38:33 +02:00
parent 2908b82f29
commit e072e493a1

View file

@ -64,15 +64,18 @@ func PayloadTest(t *testing.T) {
func ActionTest(t *testing.T) {
var result struct{ data string }
var hdlr lib.ActionHandler = func(act lib.Action) bool {
result.data = "done"
return true
var hdlrGen = func(data string) lib.ActionHandler {
return func(act lib.Action) bool {
result.data = data
return true
}
}
cfg := config.Base("testing", nil).
AddAction("scopes|doit|task", action.Base(hdlr))
AddAction("start", action.Base(hdlrGen("started"))).
AddAction("scopes|doit|task", action.Base(hdlrGen("done")))
ctx := context.AppContext(cfg)
//msg := message.SimpleMessage("doit")
msg := message.New("", "doit", "task", "4711")
lib.HandleMsg(ctx, msg)
lib.HandleMsg(ctx, message.SimpleMessage("start"))
t.AssertEqual(result.data, "started")
lib.HandleMsg(ctx, message.New("", "doit", "task", "4711"))
t.AssertEqual(result.data, "done")
}