package dbx import ( "context" "database/sql" "github.com/go-jet/jet/v2/qrm" ) type mockStatement struct { queryContextFn func(ctx context.Context, dest any) error execContextFn func(ctx context.Context) (sql.Result, error) } func (m mockStatement) Query(db qrm.Queryable, dest any) error { return m.QueryContext(context.Background(), db, dest) } func (m mockStatement) QueryContext(ctx context.Context, db qrm.Queryable, dest any) error { if m.queryContextFn != nil { return m.queryContextFn(ctx, dest) } return nil } func (m mockStatement) Exec(db qrm.Executable) (sql.Result, error) { return m.ExecContext(context.Background(), db) } func (m mockStatement) ExecContext(ctx context.Context, db qrm.Executable) (sql.Result, error) { if m.execContextFn != nil { return m.execContextFn(ctx) } return nil, nil } type mockQueryable struct{} func (mockQueryable) Query(string, ...any) (*sql.Rows, error) { return nil, nil } func (mockQueryable) QueryContext(context.Context, string, ...any) (*sql.Rows, error) { return nil, nil } type mockExecutable struct{} func (mockExecutable) Exec(string, ...any) (sql.Result, error) { return nil, nil } func (mockExecutable) ExecContext(context.Context, string, ...any) (sql.Result, error) { return nil, nil } type mockResult struct { lastInsertID int64 rowsAffected int64 lastInsertErr error rowsAffectedErr error } func (r mockResult) LastInsertId() (int64, error) { return r.lastInsertID, r.lastInsertErr } func (r mockResult) RowsAffected() (int64, error) { return r.rowsAffected, r.rowsAffectedErr } type row struct { ID int } var _ Statement = mockStatement{}