github.com/mongodb/grip@v0.0.0-20240213223901-f906268d82b9/send/smtp_mock_test.go (about) 1 package send 2 3 import ( 4 "bytes" 5 "errors" 6 "io" 7 ) 8 9 type bufferCloser struct { 10 *bytes.Buffer 11 } 12 13 func (bufferCloser) Close() error { 14 return nil 15 } 16 17 type smtpClientMock struct { 18 failCreate bool 19 failMail bool 20 failRcpt bool 21 failData bool 22 message bufferCloser 23 numMsgs int 24 } 25 26 func (c *smtpClientMock) Create(opts *SMTPOptions) error { 27 if c.failCreate { 28 return errors.New("failed creation") 29 } 30 31 return nil 32 } 33 34 func (c *smtpClientMock) Mail(to string) error { 35 if c.failMail { 36 return errors.New("failed to send mail") 37 } 38 39 return nil 40 } 41 42 func (c *smtpClientMock) Rcpt(addr string) error { 43 if c.failRcpt { 44 return errors.New("fail recpt") 45 } 46 47 return nil 48 } 49 50 func (c *smtpClientMock) Data() (io.WriteCloser, error) { 51 if c.failData { 52 return nil, errors.New("failed data") 53 } 54 c.message = bufferCloser{&bytes.Buffer{}} 55 c.numMsgs++ 56 57 return c.message, nil 58 } 59 60 func (c *smtpClientMock) Close() error { 61 return nil 62 }