mirror of
https://github.com/hanzoai/migrate.git
synced 2026-09-30 22:55:10 +00:00
* Let database.Open() use schemeFromURL as well Otherwise it will fail on MySQL DSNs. Moved schemeFromURL into the database package. Also removed databaseSchemeFromURL and sourceSchemeFromURL as they were just calling schemeFromURL. Fixes https://github.com/golang-migrate/migrate/pull/265#issuecomment-522301237 * Moved url functions into internal/url Also merged the test cases. * Add some database tests to improve coverage * Fix suggestions
49 lines
866 B
Go
49 lines
866 B
Go
package url
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestSchemeFromUrl(t *testing.T) {
|
|
cases := []struct {
|
|
name string
|
|
urlStr string
|
|
expected string
|
|
expectErr error
|
|
}{
|
|
{
|
|
name: "Simple",
|
|
urlStr: "protocol://path",
|
|
expected: "protocol",
|
|
},
|
|
{
|
|
// See issue #264
|
|
name: "MySQLWithPort",
|
|
urlStr: "mysql://user:pass@tcp(host:1337)/db",
|
|
expected: "mysql",
|
|
},
|
|
{
|
|
name: "Empty",
|
|
urlStr: "",
|
|
expectErr: errEmptyURL,
|
|
},
|
|
{
|
|
name: "NoScheme",
|
|
urlStr: "hello",
|
|
expectErr: errNoScheme,
|
|
},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
s, err := SchemeFromURL(tc.urlStr)
|
|
if err != tc.expectErr {
|
|
t.Fatalf("expected %q, but received %q", tc.expectErr, err)
|
|
}
|
|
if s != tc.expected {
|
|
t.Fatalf("expected %q, but received %q", tc.expected, s)
|
|
}
|
|
})
|
|
}
|
|
}
|