github.com/XiaoMi/Gaea@v1.2.5/mysql/conn_test.go (about) 1 package mysql 2 3 import ( 4 "bufio" 5 "github.com/XiaoMi/Gaea/util/mocks/pipeTest" 6 "github.com/stretchr/testify/require" 7 "testing" 8 ) 9 10 // TestMariadbConnWithoutDB 为用来测试数据库一开始连线的详细流程,以下测试不使用 MariaDB 的服务器,只是单纯的单元测试 11 func TestMariadbConnWithoutDB(t *testing.T) { 12 // 函数测试开始 13 t.Run("MariaDB连接 的抽换缓存测试", func(t *testing.T) { 14 // 开始模拟 15 mockClient, mockServer := pipeTest.NewDcServerClient(t, pipeTest.TestReplyMsgFunc) // 产生 Gaea 和 MariaDB 模拟物件 16 17 // 针对这次测试进行临时修改 18 err := mockClient.OverwriteConnBufWrite(nil, writersPool.Get().(*bufio.Writer)) 19 mockClient.GetBufWriter().Reset(mockClient.GetConnWrite()) 20 require.Equal(t, err, nil) 21 22 // 产生一开始的讯息和预期讯息 23 msg0 := []uint8{0} // 起始传送讯息 24 correct := uint8(0) // 预期之后的正确讯息 25 26 // 开始进行讯息操作 27 28 // 写入部份 29 mockClient.SendOrReceiveMsg(msg0) // 模拟客户端传送讯息 30 require.Equal(t, msg0[0], correct) 31 32 // 读取部份 33 msg1 := mockClient.ReplyMsg(mockServer) // 模拟服务端接收讯息 34 correct++ 35 require.Equal(t, msg1[0], correct) 36 }) 37 }