// Code generated by mockery v2.10.4. DO NOT EDIT.

// Regenerate this file using `make plugin-mocks`.

package plugintest

import (
	driver "database/sql/driver"

	mock "github.com/stretchr/testify/mock"

	plugin "github.com/mattermost/mattermost-server/v6/plugin"
)

// Driver is an autogenerated mock type for the Driver type
type Driver struct {
	mock.Mock
}

// Conn provides a mock function with given fields: isMaster
func (_m *Driver) Conn(isMaster bool) (string, error) {
	ret := _m.Called(isMaster)

	var r0 string
	if rf, ok := ret.Get(0).(func(bool) string); ok {
		r0 = rf(isMaster)
	} else {
		r0 = ret.Get(0).(string)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(bool) error); ok {
		r1 = rf(isMaster)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ConnClose provides a mock function with given fields: connID
func (_m *Driver) ConnClose(connID string) error {
	ret := _m.Called(connID)

	var r0 error
	if rf, ok := ret.Get(0).(func(string) error); ok {
		r0 = rf(connID)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// ConnExec provides a mock function with given fields: connID, q, args
func (_m *Driver) ConnExec(connID string, q string, args []driver.NamedValue) (plugin.ResultContainer, error) {
	ret := _m.Called(connID, q, args)

	var r0 plugin.ResultContainer
	if rf, ok := ret.Get(0).(func(string, string, []driver.NamedValue) plugin.ResultContainer); ok {
		r0 = rf(connID, q, args)
	} else {
		r0 = ret.Get(0).(plugin.ResultContainer)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, string, []driver.NamedValue) error); ok {
		r1 = rf(connID, q, args)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ConnPing provides a mock function with given fields: connID
func (_m *Driver) ConnPing(connID string) error {
	ret := _m.Called(connID)

	var r0 error
	if rf, ok := ret.Get(0).(func(string) error); ok {
		r0 = rf(connID)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// ConnQuery provides a mock function with given fields: connID, q, args
func (_m *Driver) ConnQuery(connID string, q string, args []driver.NamedValue) (string, error) {
	ret := _m.Called(connID, q, args)

	var r0 string
	if rf, ok := ret.Get(0).(func(string, string, []driver.NamedValue) string); ok {
		r0 = rf(connID, q, args)
	} else {
		r0 = ret.Get(0).(string)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, string, []driver.NamedValue) error); ok {
		r1 = rf(connID, q, args)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// RowsClose provides a mock function with given fields: rowsID
func (_m *Driver) RowsClose(rowsID string) error {
	ret := _m.Called(rowsID)

	var r0 error
	if rf, ok := ret.Get(0).(func(string) error); ok {
		r0 = rf(rowsID)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// RowsColumnTypeDatabaseTypeName provides a mock function with given fields: rowsID, index
func (_m *Driver) RowsColumnTypeDatabaseTypeName(rowsID string, index int) string {
	ret := _m.Called(rowsID, index)

	var r0 string
	if rf, ok := ret.Get(0).(func(string, int) string); ok {
		r0 = rf(rowsID, index)
	} else {
		r0 = ret.Get(0).(string)
	}

	return r0
}

// RowsColumnTypePrecisionScale provides a mock function with given fields: rowsID, index
func (_m *Driver) RowsColumnTypePrecisionScale(rowsID string, index int) (int64, int64, bool) {
	ret := _m.Called(rowsID, index)

	var r0 int64
	if rf, ok := ret.Get(0).(func(string, int) int64); ok {
		r0 = rf(rowsID, index)
	} else {
		r0 = ret.Get(0).(int64)
	}

	var r1 int64
	if rf, ok := ret.Get(1).(func(string, int) int64); ok {
		r1 = rf(rowsID, index)
	} else {
		r1 = ret.Get(1).(int64)
	}

	var r2 bool
	if rf, ok := ret.Get(2).(func(string, int) bool); ok {
		r2 = rf(rowsID, index)
	} else {
		r2 = ret.Get(2).(bool)
	}

	return r0, r1, r2
}

// RowsColumns provides a mock function with given fields: rowsID
func (_m *Driver) RowsColumns(rowsID string) []string {
	ret := _m.Called(rowsID)

	var r0 []string
	if rf, ok := ret.Get(0).(func(string) []string); ok {
		r0 = rf(rowsID)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]string)
		}
	}

	return r0
}

// RowsHasNextResultSet provides a mock function with given fields: rowsID
func (_m *Driver) RowsHasNextResultSet(rowsID string) bool {
	ret := _m.Called(rowsID)

	var r0 bool
	if rf, ok := ret.Get(0).(func(string) bool); ok {
		r0 = rf(rowsID)
	} else {
		r0 = ret.Get(0).(bool)
	}

	return r0
}

// RowsNext provides a mock function with given fields: rowsID, dest
func (_m *Driver) RowsNext(rowsID string, dest []driver.Value) error {
	ret := _m.Called(rowsID, dest)

	var r0 error
	if rf, ok := ret.Get(0).(func(string, []driver.Value) error); ok {
		r0 = rf(rowsID, dest)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// RowsNextResultSet provides a mock function with given fields: rowsID
func (_m *Driver) RowsNextResultSet(rowsID string) error {
	ret := _m.Called(rowsID)

	var r0 error
	if rf, ok := ret.Get(0).(func(string) error); ok {
		r0 = rf(rowsID)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// Stmt provides a mock function with given fields: connID, q
func (_m *Driver) Stmt(connID string, q string) (string, error) {
	ret := _m.Called(connID, q)

	var r0 string
	if rf, ok := ret.Get(0).(func(string, string) string); ok {
		r0 = rf(connID, q)
	} else {
		r0 = ret.Get(0).(string)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, string) error); ok {
		r1 = rf(connID, q)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// StmtClose provides a mock function with given fields: stID
func (_m *Driver) StmtClose(stID string) error {
	ret := _m.Called(stID)

	var r0 error
	if rf, ok := ret.Get(0).(func(string) error); ok {
		r0 = rf(stID)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// StmtExec provides a mock function with given fields: stID, args
func (_m *Driver) StmtExec(stID string, args []driver.NamedValue) (plugin.ResultContainer, error) {
	ret := _m.Called(stID, args)

	var r0 plugin.ResultContainer
	if rf, ok := ret.Get(0).(func(string, []driver.NamedValue) plugin.ResultContainer); ok {
		r0 = rf(stID, args)
	} else {
		r0 = ret.Get(0).(plugin.ResultContainer)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, []driver.NamedValue) error); ok {
		r1 = rf(stID, args)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// StmtNumInput provides a mock function with given fields: stID
func (_m *Driver) StmtNumInput(stID string) int {
	ret := _m.Called(stID)

	var r0 int
	if rf, ok := ret.Get(0).(func(string) int); ok {
		r0 = rf(stID)
	} else {
		r0 = ret.Get(0).(int)
	}

	return r0
}

// StmtQuery provides a mock function with given fields: stID, args
func (_m *Driver) StmtQuery(stID string, args []driver.NamedValue) (string, error) {
	ret := _m.Called(stID, args)

	var r0 string
	if rf, ok := ret.Get(0).(func(string, []driver.NamedValue) string); ok {
		r0 = rf(stID, args)
	} else {
		r0 = ret.Get(0).(string)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, []driver.NamedValue) error); ok {
		r1 = rf(stID, args)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Tx provides a mock function with given fields: connID, opts
func (_m *Driver) Tx(connID string, opts driver.TxOptions) (string, error) {
	ret := _m.Called(connID, opts)

	var r0 string
	if rf, ok := ret.Get(0).(func(string, driver.TxOptions) string); ok {
		r0 = rf(connID, opts)
	} else {
		r0 = ret.Get(0).(string)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, driver.TxOptions) error); ok {
		r1 = rf(connID, opts)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// TxCommit provides a mock function with given fields: txID
func (_m *Driver) TxCommit(txID string) error {
	ret := _m.Called(txID)

	var r0 error
	if rf, ok := ret.Get(0).(func(string) error); ok {
		r0 = rf(txID)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// TxRollback provides a mock function with given fields: txID
func (_m *Driver) TxRollback(txID string) error {
	ret := _m.Called(txID)

	var r0 error
	if rf, ok := ret.Get(0).(func(string) error); ok {
		r0 = rf(txID)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}
