github.com/bingoohuang/gg@v0.0.0-20240325092523-45da7dee9335/pkg/sqx/mysqlds_test.go (about) 1 package sqx_test 2 3 import ( 4 "testing" 5 6 "github.com/bingoohuang/gg/pkg/sqx" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestCompatibleDs(t *testing.T) { 11 ds := sqx.CompatibleMySQLDs("MYSQL_PWD=8BE4 mysql -h 127.0.0.1 -P 9633 -u root") 12 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:9633)/?charset=utf8mb4&parseTime=true&loc=Local`, ds) 13 14 ds = sqx.CompatibleMySQLDs(`MYSQL_PWD="! 8BE4" mysql --host="127.0.0.1" -P 9633 -u 'root'`) 15 assert.Equal(t, `root:! 8BE4@tcp(127.0.0.1:9633)/?charset=utf8mb4&parseTime=true&loc=Local`, ds) 16 17 ds = sqx.CompatibleMySQLDs("mysql -h 127.0.0.1 -P 9633 -u root -p8BE4") 18 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:9633)/?charset=utf8mb4&parseTime=true&loc=Local`, ds) 19 20 ds = sqx.CompatibleMySQLDs("root:8BE4@tcp(127.0.0.1:9633)/?charset=utf8mb4&parseTime=true&loc=Local") 21 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:9633)/?charset=utf8mb4&parseTime=true&loc=Local`, ds) 22 23 ds = sqx.CompatibleMySQLDs("mysql -h 127.0.0.1 -P 9633 -u root -p8BE4 -Dtest") 24 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:9633)/test?charset=utf8mb4&parseTime=true&loc=Local`, ds) 25 26 ds = sqx.CompatibleMySQLDs("mysql -h127.0.0.1 -u root -p8BE4 -Dtest") 27 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=true&loc=Local`, ds) 28 29 ds = sqx.CompatibleMySQLDs("127.0.0.1:9633 root/8BE4") 30 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:9633)/?charset=utf8mb4&parseTime=true&loc=Local`, ds) 31 32 ds = sqx.CompatibleMySQLDs("127.0.0.1 root/8BE4") 33 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:3306)/?charset=utf8mb4&parseTime=true&loc=Local`, ds) 34 35 ds = sqx.CompatibleMySQLDs("127.0.0.1:9633 root/8BE4 db=test") 36 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:9633)/test?charset=utf8mb4&parseTime=true&loc=Local`, ds) 37 38 ds = sqx.CompatibleMySQLDs("root:8BE4@127.0.0.1:9633/test") 39 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:9633)/test?charset=utf8mb4&parseTime=true&loc=Local`, ds) 40 41 ds = sqx.CompatibleMySQLDs("root:8BE4@127.0.0.1/test") 42 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:3306)/test?charset=utf8mb4&parseTime=true&loc=Local`, ds) 43 44 ds = sqx.CompatibleMySQLDs("root:8BE4@127.0.0.1") 45 assert.Equal(t, `root:8BE4@tcp(127.0.0.1:3306)/?charset=utf8mb4&parseTime=true&loc=Local`, ds) 46 }