diff --git a/pkg/sqlutil/mocks/data_source.go b/pkg/sqlutil/mocks/data_source.go deleted file mode 100644 index 40cd9017a..000000000 --- a/pkg/sqlutil/mocks/data_source.go +++ /dev/null @@ -1,86 +0,0 @@ -package mocks - -import ( - "context" - "database/sql" - - "github.com/stretchr/testify/mock" - - "github.com/jmoiron/sqlx" - - "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" -) - -var _ sqlutil.DataSource = &DataSource{} - -// DataSource is a mocked DataSource type. Note: this will only work to satisfy -// the interface, don't expect any of the usual Mock methods such as On() to -// work on it. This is to avoid depending on any particular version of mockery -// (which could be different in different repos making use of this) -type DataSource struct { - mock.Mock -} - -// BindNamed provides a mock function with given fields: _a0, _a1 -func (ds *DataSource) BindNamed(_a0 string, _a1 interface{}) (string, []interface{}, error) { - return "", nil, nil -} - -// DriverName provides a mock function with given fields: -func (ds *DataSource) DriverName() string { - return "" -} - -// ExecContext provides a mock function with given fields: ctx, query, args -func (ds *DataSource) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) { - return nil, nil -} - -// GetContext provides a mock function with given fields: ctx, dest, query, args -func (ds *DataSource) GetContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error { - return nil -} - -// NamedExecContext provides a mock function with given fields: ctx, query, arg -func (ds *DataSource) NamedExecContext(ctx context.Context, query string, arg interface{}) (sql.Result, error) { - return nil, nil -} - -// PrepareContext provides a mock function with given fields: ctx, query -func (ds *DataSource) PrepareContext(ctx context.Context, query string) (*sql.Stmt, error) { - return nil, nil -} - -func (_m *DataSource) PrepareNamedContext(ctx context.Context, query string) (*sqlx.NamedStmt, error) { - return nil, nil -} - -// QueryContext provides a mock function with given fields: ctx, query, args -func (ds *DataSource) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) { - return nil, nil -} - -// QueryRowxContext provides a mock function with given fields: ctx, query, args -func (ds *DataSource) QueryRowxContext(ctx context.Context, query string, args ...interface{}) *sqlx.Row { - return nil -} - -// QueryxContext provides a mock function with given fields: ctx, query, args -func (ds *DataSource) QueryxContext(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error) { - return nil, nil -} - -// Rebind provides a mock function with given fields: _a0 -func (ds *DataSource) Rebind(_a0 string) string { - return "" -} - -// SelectContext provides a mock function with given fields: ctx, dest, query, args -func (ds *DataSource) SelectContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error { - return nil -} - -// NewDataSource creates a new instance of DataSource. -func NewDataSource() *DataSource { - return &DataSource{} -} diff --git a/pkg/sqlutil/test_data_source.go b/pkg/sqlutil/test_data_source.go new file mode 100644 index 000000000..028205006 --- /dev/null +++ b/pkg/sqlutil/test_data_source.go @@ -0,0 +1,87 @@ +package sqlutil + +import ( + "context" + "database/sql" + "testing" + + "github.com/jmoiron/sqlx" + _ "github.com/proullon/ramsql/driver" + "github.com/stretchr/testify/require" + + "github.com/smartcontractkit/chainlink-common/pkg/sqlutil" +) + +var _ sqlutil.DataSource = &TestDataSource{} + +// TestDataSource is a simple in-memory DataSource type which can be used for some types of unit testing. +type TestDataSource struct { + db *sql.DB +} + +// BindNamed provides a mock function with given fields: _a0, _a1 +func (ds *TestDataSource) BindNamed(_a0 string, _a1 interface{}) (string, []interface{}, error) { + return "", nil, nil +} + +// DriverName provides a mock function with given fields: +func (ds *TestDataSource) DriverName() string { + return "" +} + +// ExecContext provides a mock function with given fields: ctx, query, args +func (ds *TestDataSource) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) { + return nil, nil +} + +// GetContext provides a mock function with given fields: ctx, dest, query, args +func (ds *TestDataSource) GetContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error { + return nil +} + +// NamedExecContext provides a mock function with given fields: ctx, query, arg +func (ds *TestDataSource) NamedExecContext(ctx context.Context, query string, arg interface{}) (sql.Result, error) { + return nil, nil +} + +// PrepareContext provides a mock function with given fields: ctx, query +func (ds *TestDataSource) PrepareContext(ctx context.Context, query string) (*sql.Stmt, error) { + return nil, nil +} + +func (_m *TestDataSource) PrepareNamedContext(ctx context.Context, query string) (*sqlx.NamedStmt, error) { + return nil, nil +} + +// QueryContext provides a mock function with given fields: ctx, query, args +func (ds *TestDataSource) QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) { + return nil, nil +} + +// QueryRowxContext provides a mock function with given fields: ctx, query, args +func (ds *TestDataSource) QueryRowxContext(ctx context.Context, query string, args ...interface{}) *sqlx.Row { + return nil +} + +// QueryxContext provides a mock function with given fields: ctx, query, args +func (ds *TestDataSource) QueryxContext(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error) { + return nil, nil +} + +// Rebind provides a mock function with given fields: _a0 +func (ds *TestDataSource) Rebind(_a0 string) string { + return "" +} + +// SelectContext provides a mock function with given fields: ctx, dest, query, args +func (ds *TestDataSource) SelectContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error { + return nil +} + +// NewTestDataSource creates a new instance of DataSource. +func NewTestDataSource(t testing.T) *TestDataSource { + db, err := sql.Open("ramsql", "testdb") + require.NoError(t, err) + t.Cleanup(func() { require.NoError(t, db.Close()) }) + return &TestDataSource{db: db} +}