dex/email/mailgun_test.go

57 lines
1.3 KiB
Go
Raw Normal View History

2015-08-18 05:57:27 +05:30
package email
import (
"strings"
"testing"
"github.com/kylelemons/godebug/pretty"
)
func TestNewEmailConfigFromReader(t *testing.T) {
tests := []struct {
json string
want MailgunEmailerConfig
wantErr bool
}{
{
json: `{"type":"mailgun","id":"mg","privateAPIKey":"private","publicAPIKey":"public","domain":"example.com"}`,
want: MailgunEmailerConfig{
PrivateAPIKey: "private",
PublicAPIKey: "public",
Domain: "example.com",
},
},
{
json: `{"type":"mailgun","id":"mg","publicAPIKey":"public","domain":"example.com"}`,
wantErr: true,
},
{
json: `{"type":"mailgun","id":"mg","privateAPIKey":"private","publicAPIKey":"public"}`,
wantErr: true,
},
{
json: `{"type":"mailgun","id":"mg","privateAPIKey":"private","domain":"example.com"}`,
wantErr: true,
},
}
for i, tt := range tests {
r := strings.NewReader(tt.json)
ec, err := newEmailerConfigFromReader(r)
if tt.wantErr {
if err == nil {
t.Errorf("case %d: want non-nil err.", i)
}
t.Logf("WHAT: %v", err)
continue
}
if err != nil {
t.Errorf("case %d: want nil err: %v", i, err)
continue
}
if diff := pretty.Compare(tt.want, ec); diff != "" {
t.Errorf("case %d: Compare(want, got): %v", i, diff)
}
}
}