47d49c6b92
* Add a go.mod file * run go mod vendor again * Move to a well-supported ini file reader * Remove GO111MODULE=off * Use go 1.16 * Rename github.com/outbrain/golib -> github.com/openark/golib * Remove *.go-e files * Fix for `strconv.ParseInt: parsing "": invalid syntax` error * Add test for '[osc]' section Co-authored-by: Nate Wernimont <nate.wernimont@workiva.com>
85 lines
2.6 KiB
Go
85 lines
2.6 KiB
Go
/*
|
|
Copyright 2016 GitHub Inc.
|
|
See https://github.com/github/gh-ost/blob/master/LICENSE
|
|
*/
|
|
|
|
package mysql
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"testing"
|
|
|
|
"github.com/openark/golib/log"
|
|
test "github.com/openark/golib/tests"
|
|
)
|
|
|
|
func init() {
|
|
log.SetLevel(log.ERROR)
|
|
}
|
|
|
|
func TestNewConnectionConfig(t *testing.T) {
|
|
c := NewConnectionConfig()
|
|
test.S(t).ExpectEquals(c.Key.Hostname, "")
|
|
test.S(t).ExpectEquals(c.Key.Port, 0)
|
|
test.S(t).ExpectEquals(c.ImpliedKey.Hostname, "")
|
|
test.S(t).ExpectEquals(c.ImpliedKey.Port, 0)
|
|
test.S(t).ExpectEquals(c.User, "")
|
|
test.S(t).ExpectEquals(c.Password, "")
|
|
}
|
|
|
|
func TestDuplicateCredentials(t *testing.T) {
|
|
c := NewConnectionConfig()
|
|
c.Key = InstanceKey{Hostname: "myhost", Port: 3306}
|
|
c.User = "gromit"
|
|
c.Password = "penguin"
|
|
c.tlsConfig = &tls.Config{
|
|
InsecureSkipVerify: true,
|
|
ServerName: "feathers",
|
|
}
|
|
|
|
dup := c.DuplicateCredentials(InstanceKey{Hostname: "otherhost", Port: 3310})
|
|
test.S(t).ExpectEquals(dup.Key.Hostname, "otherhost")
|
|
test.S(t).ExpectEquals(dup.Key.Port, 3310)
|
|
test.S(t).ExpectEquals(dup.ImpliedKey.Hostname, "otherhost")
|
|
test.S(t).ExpectEquals(dup.ImpliedKey.Port, 3310)
|
|
test.S(t).ExpectEquals(dup.User, "gromit")
|
|
test.S(t).ExpectEquals(dup.Password, "penguin")
|
|
test.S(t).ExpectEquals(dup.tlsConfig, c.tlsConfig)
|
|
}
|
|
|
|
func TestDuplicate(t *testing.T) {
|
|
c := NewConnectionConfig()
|
|
c.Key = InstanceKey{Hostname: "myhost", Port: 3306}
|
|
c.User = "gromit"
|
|
c.Password = "penguin"
|
|
|
|
dup := c.Duplicate()
|
|
test.S(t).ExpectEquals(dup.Key.Hostname, "myhost")
|
|
test.S(t).ExpectEquals(dup.Key.Port, 3306)
|
|
test.S(t).ExpectEquals(dup.ImpliedKey.Hostname, "myhost")
|
|
test.S(t).ExpectEquals(dup.ImpliedKey.Port, 3306)
|
|
test.S(t).ExpectEquals(dup.User, "gromit")
|
|
test.S(t).ExpectEquals(dup.Password, "penguin")
|
|
}
|
|
|
|
func TestGetDBUri(t *testing.T) {
|
|
c := NewConnectionConfig()
|
|
c.Key = InstanceKey{Hostname: "myhost", Port: 3306}
|
|
c.User = "gromit"
|
|
c.Password = "penguin"
|
|
|
|
uri := c.GetDBUri("test")
|
|
test.S(t).ExpectEquals(uri, "gromit:penguin@tcp(myhost:3306)/test?timeout=0.000000s&readTimeout=0.000000s&writeTimeout=0.000000s&interpolateParams=true&autocommit=true&charset=utf8mb4,utf8,latin1&tls=false")
|
|
}
|
|
|
|
func TestGetDBUriWithTLSSetup(t *testing.T) {
|
|
c := NewConnectionConfig()
|
|
c.Key = InstanceKey{Hostname: "myhost", Port: 3306}
|
|
c.User = "gromit"
|
|
c.Password = "penguin"
|
|
c.tlsConfig = &tls.Config{}
|
|
|
|
uri := c.GetDBUri("test")
|
|
test.S(t).ExpectEquals(uri, "gromit:penguin@tcp(myhost:3306)/test?timeout=0.000000s&readTimeout=0.000000s&writeTimeout=0.000000s&interpolateParams=true&autocommit=true&charset=utf8mb4,utf8,latin1&tls=ghost")
|
|
}
|