You've already forked go-sqlmock
mirror of
https://github.com/DATA-DOG/go-sqlmock.git
synced 2025-06-23 00:17:47 +02:00
do not expose sql driver methods for sqlmock, give interface
This commit is contained in:
12
driver.go
12
driver.go
@ -11,7 +11,7 @@ var pool *mockDriver
|
||||
|
||||
func init() {
|
||||
pool = &mockDriver{
|
||||
conns: make(map[string]*Sqlmock),
|
||||
conns: make(map[string]*sqlmock),
|
||||
}
|
||||
sql.Register("sqlmock", pool)
|
||||
}
|
||||
@ -19,7 +19,7 @@ func init() {
|
||||
type mockDriver struct {
|
||||
sync.Mutex
|
||||
counter int
|
||||
conns map[string]*Sqlmock
|
||||
conns map[string]*sqlmock
|
||||
}
|
||||
|
||||
func (d *mockDriver) Open(dsn string) (driver.Conn, error) {
|
||||
@ -39,18 +39,18 @@ func (d *mockDriver) Open(dsn string) (driver.Conn, error) {
|
||||
// and a mock to manage expectations.
|
||||
// Pings db so that all expectations could be
|
||||
// asserted.
|
||||
func New() (db *sql.DB, mock *Sqlmock, err error) {
|
||||
func New() (db *sql.DB, mock Sqlmock, err error) {
|
||||
pool.Lock()
|
||||
dsn := fmt.Sprintf("sqlmock_db_%d", pool.counter)
|
||||
pool.counter++
|
||||
|
||||
mock = &Sqlmock{dsn: dsn, drv: pool, MatchExpectationsInOrder: true}
|
||||
pool.conns[dsn] = mock
|
||||
smock := &sqlmock{dsn: dsn, drv: pool, ordered: true}
|
||||
pool.conns[dsn] = smock
|
||||
pool.Unlock()
|
||||
|
||||
db, err = sql.Open("sqlmock", dsn)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
return db, mock, db.Ping()
|
||||
return db, smock, db.Ping()
|
||||
}
|
||||
|
Reference in New Issue
Block a user