1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
package eventtest
import (
"context"
"golang.org/x/exp/event"
)
type CaptureHandler struct {
Got []event.Event
}
func (h *CaptureHandler) Event(ctx context.Context, ev *event.Event) context.Context {
h.Got = append(h.Got, *ev)
got := &h.Got[len(h.Got)-1]
got.Labels = make([]event.Label, len(ev.Labels))
copy(got.Labels, ev.Labels)
return ctx
}
func (h *CaptureHandler) Reset() {
if len(h.Got) > 0 {
h.Got = h.Got[:0]
}
}
func NewCapture() (context.Context, *CaptureHandler) {
h := &CaptureHandler{}
ctx := event.WithExporter(context.Background(), event.NewExporter(h, ExporterOptions()))
return ctx, h
}
|