diff --git a/driver.go b/driver.go index 876f7a2..802f8fb 100644 --- a/driver.go +++ b/driver.go @@ -35,8 +35,9 @@ func (d *mockDriver) Open(dsn string) (driver.Conn, error) { return c, nil } -// New creates sqlmock database connection -// and a mock to manage expectations. +// New creates sqlmock database connection and a mock to manage expectations. +// Accepts options, like ValueConverterOption, to use a ValueConverter from +// a specific driver. // Pings db so that all expectations could be // asserted. func New(options ...func(*sqlmock) error) (*sql.DB, Sqlmock, error) { @@ -51,8 +52,10 @@ func New(options ...func(*sqlmock) error) (*sql.DB, Sqlmock, error) { return smock.open(options) } -// NewWithDSN creates sqlmock database connection -// with a specific DSN and a mock to manage expectations. +// NewWithDSN creates sqlmock database connection with a specific DSN +// and a mock to manage expectations. +// Accepts options, like ValueConverterOption, to use a ValueConverter from +// a specific driver. // Pings db so that all expectations could be asserted. // // This method is introduced because of sql abstraction @@ -76,12 +79,3 @@ func NewWithDSN(dsn string, options ...func(*sqlmock) error) (*sql.DB, Sqlmock, return smock.open(options) } - -// WithValueConverter allows to create a sqlmock connection -// with a custom ValueConverter to support drivers with special data types. -func WithValueConverter(converter driver.ValueConverter) func(*sqlmock) error { - return func(s *sqlmock) error { - s.converter = converter - return nil - } -} diff --git a/driver_test.go b/driver_test.go index a8acc69..bbd7293 100644 --- a/driver_test.go +++ b/driver_test.go @@ -100,7 +100,7 @@ func TestTwoOpenConnectionsOnTheSameDSN(t *testing.T) { func TestWithOptions(t *testing.T) { c := &converter{} - _, mock, err := New(WithValueConverter(c)) + _, mock, err := New(ValueConverterOption(c)) if err != nil { t.Errorf("expected no error, but got: %s", err) } diff --git a/options.go b/options.go new file mode 100644 index 0000000..05c09d6 --- /dev/null +++ b/options.go @@ -0,0 +1,12 @@ +package sqlmock + +import "database/sql/driver" + +// ValueConverterOption allows to create a sqlmock connection +// with a custom ValueConverter to support drivers with special data types. +func ValueConverterOption(converter driver.ValueConverter) func(*sqlmock) error { + return func(s *sqlmock) error { + s.converter = converter + return nil + } +}