summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/goamz/goamz/exp/ses/ses_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/goamz/goamz/exp/ses/ses_test.go')
-rw-r--r--vendor/github.com/goamz/goamz/exp/ses/ses_test.go69
1 files changed, 69 insertions, 0 deletions
diff --git a/vendor/github.com/goamz/goamz/exp/ses/ses_test.go b/vendor/github.com/goamz/goamz/exp/ses/ses_test.go
new file mode 100644
index 000000000..ae93215ed
--- /dev/null
+++ b/vendor/github.com/goamz/goamz/exp/ses/ses_test.go
@@ -0,0 +1,69 @@
+// ses_test
+package ses_test
+
+import (
+ "bytes"
+ "net/url"
+ "testing"
+
+ "github.com/goamz/goamz/aws"
+ "github.com/goamz/goamz/exp/ses"
+ "github.com/goamz/goamz/testutil"
+ . "gopkg.in/check.v1"
+)
+
+func Test(t *testing.T) {
+ TestingT(t)
+}
+
+type S struct {
+ ses *ses.SES
+}
+
+var _ = Suite(&S{})
+
+var testServer = testutil.NewHTTPServer()
+
+func (s *S) SetUpSuite(c *C) {
+ testServer.Start()
+ auth := aws.Auth{AccessKey: "abc", SecretKey: "123"}
+ s.ses = ses.NewSES(auth, aws.Region{Name: "faux-region-1", S3Endpoint: testServer.URL})
+}
+
+func (s *S) TearDownStrategy(c *C) {
+
+}
+
+func (s *S) SetUpTest(c *C) {
+
+}
+
+func (s *S) TearDownTest(c *C) {
+ testServer.Flush()
+}
+
+func (s *S) TestSendEmail(c *C) {
+ testServer.Response(200, nil, "")
+
+ email := ses.NewEmail()
+ email.AddTo("test@test.com")
+ email.AddSource("test@test.com")
+ email.SetSubject("test")
+ email.SetBodyHtml("test")
+
+ s.ses.SendEmail(email)
+ req := testServer.WaitRequest()
+
+ c.Assert(req.Method, Equals, "POST")
+ c.Assert(req.Header["Date"], Not(Equals), "")
+
+ buf := new(bytes.Buffer)
+ buf.ReadFrom(req.Body)
+ body, _ := url.ParseQuery(buf.String())
+
+ c.Assert(body, Not(IsNil))
+ c.Assert(body["Destination.ToAddresses.member.1"], Equals, "test@test.com")
+ c.Assert(body["Source"], Equals, "test@test.com")
+ c.Assert(body["Message.Subject.Data"], Equals, "test")
+ c.Assert(body["Message.Body.Html.Data"], Equals, "test")
+}