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  }