package mail import ( "context" "sync" ) // Recording is a test Notifier that records calls. type Recording struct { mu sync.Mutex Msgs []PostReply } func (r *Recording) NotifyPostReply(_ context.Context, msg PostReply) error { r.mu.Lock() defer r.mu.Unlock() r.Msgs = append(r.Msgs, msg) return nil } func (r *Recording) Len() int { r.mu.Lock() defer r.mu.Unlock() return len(r.Msgs) } // Snapshot returns a copy of recorded messages. func (r *Recording) Snapshot() []PostReply { r.mu.Lock() defer r.mu.Unlock() out := make([]PostReply, len(r.Msgs)) copy(out, r.Msgs) return out }