gte/internal/configuration/configuration_test.go

112 lines
2.5 KiB
Go
Raw Normal View History

2021-05-15 11:19:28 +02:00
package configuration_test
import (
"strings"
"testing"
"git.ewintr.nl/go-kit/test"
"git.ewintr.nl/gte/internal/configuration"
"git.ewintr.nl/gte/pkg/msend"
"git.ewintr.nl/gte/pkg/mstore"
)
func TestNew(t *testing.T) {
for _, tc := range []struct {
name string
source string
exp *configuration.Configuration
}{
{
name: "empty",
exp: &configuration.Configuration{},
},
{
name: "lines without values",
source: "test\n\n876\nkey=",
exp: &configuration.Configuration{},
},
{
name: "trim space",
source: " imap_url\t= value",
exp: &configuration.Configuration{
IMAPURL: "value",
},
},
{
name: "value with space",
source: "imap_url=one two three",
exp: &configuration.Configuration{
IMAPURL: "one two three",
},
},
{
name: "imap",
source: "imap_url=url\nimap_username=username\nimap_password=password",
exp: &configuration.Configuration{
IMAPURL: "url",
IMAPUsername: "username",
IMAPPassword: "password",
},
},
{
name: "smtp",
source: "smtp_url=url\nsmtp_username=username\nsmtp_password=password",
exp: &configuration.Configuration{
SMTPURL: "url",
SMTPUsername: "username",
SMTPPassword: "password",
},
},
{
name: "addresses",
source: "to_name=to_name\nto_address=to_address\nfrom_name=from_name\nfrom_address=from_address",
exp: &configuration.Configuration{
ToName: "to_name",
ToAddress: "to_address",
FromName: "from_name",
FromAddress: "from_address",
},
},
} {
t.Run(tc.name, func(t *testing.T) {
test.Equals(t, tc.exp, configuration.New(strings.NewReader(tc.source)))
})
}
}
func TestConfigs(t *testing.T) {
conf := &configuration.Configuration{
IMAPURL: "imap_url",
IMAPUsername: "imap_username",
IMAPPassword: "imap_password",
SMTPURL: "smtp_url",
SMTPUsername: "smtp_username",
SMTPPassword: "smtp_password",
ToName: "to_name",
ToAddress: "to_address",
FromName: "from_name",
FromAddress: "from_address",
}
t.Run("imap", func(t *testing.T) {
exp := &mstore.IMAPConfig{
IMAPURL: "imap_url",
IMAPUsername: "imap_username",
IMAPPassword: "imap_password",
}
test.Equals(t, exp, conf.IMAP())
})
t.Run("smtp", func(t *testing.T) {
exp := &msend.SSLSMTPConfig{
URL: "smtp_url",
Username: "smtp_username",
Password: "smtp_password",
To: "to_address",
From: "from_address",
}
test.Equals(t, exp, conf.SMTP())
})
}