hanayo/vendor/gopkg.in/mailgun/mailgun-go.v1/spam_complaints_test.go
2019-02-23 13:29:15 +00:00

60 lines
1.4 KiB
Go

package mailgun
import (
"net/http"
"strings"
"testing"
"github.com/facebookgo/ensure"
)
func TestGetComplaints(t *testing.T) {
reqEnv(t, "MG_PUBLIC_API_KEY")
mg, err := NewMailgunFromEnv()
ensure.Nil(t, err)
n, complaints, err := mg.GetComplaints(-1, -1)
ensure.Nil(t, err)
ensure.DeepEqual(t, len(complaints), n)
}
func TestGetComplaintFromRandomNoComplaint(t *testing.T) {
reqEnv(t, "MG_PUBLIC_API_KEY")
mg, err := NewMailgunFromEnv()
ensure.Nil(t, err)
_, err = mg.GetSingleComplaint(randomString(64, "") + "@example.com")
ensure.NotNil(t, err)
ure, ok := err.(*UnexpectedResponseError)
ensure.True(t, ok)
ensure.DeepEqual(t, ure.Actual, http.StatusNotFound)
}
func TestCreateDeleteComplaint(t *testing.T) {
mg, err := NewMailgunFromEnv()
ensure.Nil(t, err)
var hasComplaint = func(email string) bool {
t.Logf("hasComplaint: %s\n", email)
_, complaints, err := mg.GetComplaints(DefaultLimit, DefaultSkip)
ensure.Nil(t, err)
for _, complaint := range complaints {
t.Logf("Complaint Address: %s\n", complaint.Address)
if complaint.Address == email {
return true
}
}
return false
}
randomMail := strings.ToLower(randomString(64, "")) + "@example.com"
ensure.False(t, hasComplaint(randomMail))
ensure.Nil(t, mg.CreateComplaint(randomMail))
ensure.True(t, hasComplaint(randomMail))
ensure.Nil(t, mg.DeleteComplaint(randomMail))
ensure.False(t, hasComplaint(randomMail))
}