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

53 lines
1.1 KiB
Go

package mailgun
import (
"testing"
"github.com/facebookgo/ensure"
)
func TestRouteCRUD(t *testing.T) {
mg, err := NewMailgunFromEnv()
ensure.Nil(t, err)
var countRoutes = func() int {
count, _, err := mg.GetRoutes(DefaultLimit, DefaultSkip)
ensure.Nil(t, err)
return count
}
routeCount := countRoutes()
newRoute, err := mg.CreateRoute(Route{
Priority: 1,
Description: "Sample Route",
Expression: "match_recipient(\".*@samples.mailgun.org\")",
Actions: []string{
"forward(\"http://example.com/messages/\")",
"stop()",
},
})
ensure.Nil(t, err)
ensure.True(t, newRoute.ID != "")
defer func() {
ensure.Nil(t, mg.DeleteRoute(newRoute.ID))
_, err = mg.GetRouteByID(newRoute.ID)
ensure.NotNil(t, err)
}()
newCount := countRoutes()
ensure.False(t, newCount <= routeCount)
theRoute, err := mg.GetRouteByID(newRoute.ID)
ensure.Nil(t, err)
ensure.DeepEqual(t, newRoute, theRoute)
changedRoute, err := mg.UpdateRoute(newRoute.ID, Route{
Priority: 2,
})
ensure.Nil(t, err)
ensure.DeepEqual(t, changedRoute.Priority, 2)
ensure.DeepEqual(t, len(changedRoute.Actions), 2)
}