選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

70 行
1.4 KiB

  1. // ses_test
  2. package ses_test
  3. import (
  4. "bytes"
  5. "net/url"
  6. "testing"
  7. "github.com/goamz/goamz/aws"
  8. "github.com/goamz/goamz/exp/ses"
  9. "github.com/goamz/goamz/testutil"
  10. . "gopkg.in/check.v1"
  11. )
  12. func Test(t *testing.T) {
  13. TestingT(t)
  14. }
  15. type S struct {
  16. ses *ses.SES
  17. }
  18. var _ = Suite(&S{})
  19. var testServer = testutil.NewHTTPServer()
  20. func (s *S) SetUpSuite(c *C) {
  21. testServer.Start()
  22. auth := aws.Auth{AccessKey: "abc", SecretKey: "123"}
  23. s.ses = ses.NewSES(auth, aws.Region{Name: "faux-region-1", S3Endpoint: testServer.URL})
  24. }
  25. func (s *S) TearDownStrategy(c *C) {
  26. }
  27. func (s *S) SetUpTest(c *C) {
  28. }
  29. func (s *S) TearDownTest(c *C) {
  30. testServer.Flush()
  31. }
  32. func (s *S) TestSendEmail(c *C) {
  33. testServer.Response(200, nil, "")
  34. email := ses.NewEmail()
  35. email.AddTo("test@test.com")
  36. email.AddSource("test@test.com")
  37. email.SetSubject("test")
  38. email.SetBodyHtml("test")
  39. s.ses.SendEmail(email)
  40. req := testServer.WaitRequest()
  41. c.Assert(req.Method, Equals, "POST")
  42. c.Assert(req.Header["Date"], Not(Equals), "")
  43. buf := new(bytes.Buffer)
  44. buf.ReadFrom(req.Body)
  45. body, _ := url.ParseQuery(buf.String())
  46. c.Assert(body, Not(IsNil))
  47. c.Assert(body["Destination.ToAddresses.member.1"], Equals, "test@test.com")
  48. c.Assert(body["Source"], Equals, "test@test.com")
  49. c.Assert(body["Message.Subject.Data"], Equals, "test")
  50. c.Assert(body["Message.Body.Html.Data"], Equals, "test")
  51. }