github.com/RevenueMonster/sqlike@v1.0.6/sqlike/options/connect_test.go (about)

     1  package options
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func TestConnect(t *testing.T) {
    10  	rawConn := "user:password@/dbname"
    11  	opt := Connect()
    12  	opt.ApplyURI(rawConn)
    13  
    14  	{
    15  		require.Equal(t, rawConn, opt.raw)
    16  		require.Equal(t, rawConn, opt.RawConnStr())
    17  	}
    18  
    19  	{
    20  		opt.SetUsername("root")
    21  		require.Equal(t, "root", opt.Username)
    22  	}
    23  
    24  	{
    25  		opt.SetPassword("abcd1234")
    26  		require.Equal(t, "abcd1234", opt.Password)
    27  	}
    28  
    29  	{
    30  		opt.SetProtocol("tcp")
    31  		require.Equal(t, "tcp", opt.Protocol)
    32  	}
    33  
    34  	{
    35  		opt.SetHost("127.0.0.1")
    36  		require.Equal(t, "127.0.0.1", opt.Host)
    37  
    38  		opt.SetHost("192.168.0.10")
    39  		require.Equal(t, "192.168.0.10", opt.Host)
    40  	}
    41  
    42  	{
    43  		opt.SetPort("3307")
    44  		require.Equal(t, "3307", opt.Port)
    45  
    46  		require.Panics(t, func() {
    47  			opt.SetPort("127.0.0.1")
    48  		})
    49  
    50  		require.Panics(t, func() {
    51  			opt.SetPort("3306 7707")
    52  		})
    53  	}
    54  
    55  	{
    56  		opt.SetSocket("unix()")
    57  		require.Equal(t, "unix()", opt.Socket)
    58  	}
    59  
    60  	{
    61  		opt.SetCharset("utf8")
    62  		require.Equal(t, "utf8", string(opt.Charset))
    63  	}
    64  
    65  	{
    66  		opt.SetCollate("utf8_bin_general")
    67  		require.Equal(t, "utf8_bin_general", opt.Collate)
    68  	}
    69  }