parent
ec6132b754
commit
8e889d694d
@ -0,0 +1,61 @@
|
||||
package sqlx
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"io"
|
||||
"testing"
|
||||
|
||||
"github.com/DATA-DOG/go-sqlmock"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/tal-tech/go-zero/core/logx"
|
||||
)
|
||||
|
||||
const mockedDatasource = "sqlmock"
|
||||
|
||||
func init() {
|
||||
logx.Disable()
|
||||
}
|
||||
|
||||
func TestSqlConn(t *testing.T) {
|
||||
mock := buildConn()
|
||||
mock.ExpectExec("any")
|
||||
mock.ExpectQuery("any").WillReturnRows(sqlmock.NewRows([]string{"foo"}))
|
||||
conn := NewMysql(mockedDatasource)
|
||||
badConn := NewMysql("badsql")
|
||||
_, err := conn.Exec("any", "value")
|
||||
assert.NotNil(t, err)
|
||||
_, err = badConn.Exec("any", "value")
|
||||
assert.NotNil(t, err)
|
||||
_, err = conn.Prepare("any")
|
||||
assert.NotNil(t, err)
|
||||
_, err = badConn.Prepare("any")
|
||||
assert.NotNil(t, err)
|
||||
var val string
|
||||
assert.NotNil(t, conn.QueryRow(&val, "any"))
|
||||
assert.NotNil(t, badConn.QueryRow(&val, "any"))
|
||||
assert.NotNil(t, conn.QueryRowPartial(&val, "any"))
|
||||
assert.NotNil(t, badConn.QueryRowPartial(&val, "any"))
|
||||
assert.NotNil(t, conn.QueryRows(&val, "any"))
|
||||
assert.NotNil(t, badConn.QueryRows(&val, "any"))
|
||||
assert.NotNil(t, conn.QueryRowsPartial(&val, "any"))
|
||||
assert.NotNil(t, badConn.QueryRowsPartial(&val, "any"))
|
||||
assert.NotNil(t, conn.Transact(func(session Session) error {
|
||||
return nil
|
||||
}))
|
||||
assert.NotNil(t, badConn.Transact(func(session Session) error {
|
||||
return nil
|
||||
}))
|
||||
}
|
||||
|
||||
func buildConn() (mock sqlmock.Sqlmock) {
|
||||
connManager.GetResource(mockedDatasource, func() (io.Closer, error) {
|
||||
var db *sql.DB
|
||||
var err error
|
||||
db, mock, err = sqlmock.New()
|
||||
return &pingedDB{
|
||||
DB: db,
|
||||
}, err
|
||||
})
|
||||
|
||||
return
|
||||
}
|
Loading…
Reference in New Issue