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) { func ActionTest(t *testing.T) {
var result struct{ data string } var result struct{ data string }
var hdlr lib.ActionHandler = func(act lib.Action) bool { var hdlrGen = func(data string) lib.ActionHandler {
result.data = "done" return func(act lib.Action) bool {
result.data = data
return true return true
} }
}
cfg := config.Base("testing", nil). 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) ctx := context.AppContext(cfg)
//msg := message.SimpleMessage("doit") lib.HandleMsg(ctx, message.SimpleMessage("start"))
msg := message.New("", "doit", "task", "4711") t.AssertEqual(result.data, "started")
lib.HandleMsg(ctx, msg) lib.HandleMsg(ctx, message.New("", "doit", "task", "4711"))
t.AssertEqual(result.data, "done") t.AssertEqual(result.data, "done")
} }