// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/influxdata/idpe/influxql/query (interfaces: ShardGroup)

// Package mocks is a generated GoMock package.
package mocks

import (
	context "context"
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
	query "github.com/influxdata/influxdb/v2/influxql/query"
	influxql "github.com/influxdata/influxql"
)

// MockShardGroup is a mock of ShardGroup interface
type MockShardGroup struct {
	ctrl     *gomock.Controller
	recorder *MockShardGroupMockRecorder
}

// MockShardGroupMockRecorder is the mock recorder for MockShardGroup
type MockShardGroupMockRecorder struct {
	mock *MockShardGroup
}

// NewMockShardGroup creates a new mock instance
func NewMockShardGroup(ctrl *gomock.Controller) *MockShardGroup {
	mock := &MockShardGroup{ctrl: ctrl}
	mock.recorder = &MockShardGroupMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use
func (m *MockShardGroup) EXPECT() *MockShardGroupMockRecorder {
	return m.recorder
}

// Close mocks base method
func (m *MockShardGroup) Close() error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Close")
	ret0, _ := ret[0].(error)
	return ret0
}

// Close indicates an expected call of Close
func (mr *MockShardGroupMockRecorder) Close() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Close", reflect.TypeOf((*MockShardGroup)(nil).Close))
}

// CreateIterator mocks base method
func (m *MockShardGroup) CreateIterator(arg0 context.Context, arg1 *influxql.Measurement, arg2 query.IteratorOptions) (query.Iterator, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateIterator", arg0, arg1, arg2)
	ret0, _ := ret[0].(query.Iterator)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// CreateIterator indicates an expected call of CreateIterator
func (mr *MockShardGroupMockRecorder) CreateIterator(arg0, arg1, arg2 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateIterator", reflect.TypeOf((*MockShardGroup)(nil).CreateIterator), arg0, arg1, arg2)
}

// FieldDimensions mocks base method
func (m *MockShardGroup) FieldDimensions(arg0 context.Context, arg1 *influxql.Measurement) (map[string]influxql.DataType, map[string]struct{}, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "FieldDimensions", arg0, arg1)
	ret0, _ := ret[0].(map[string]influxql.DataType)
	ret1, _ := ret[1].(map[string]struct{})
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// FieldDimensions indicates an expected call of FieldDimensions
func (mr *MockShardGroupMockRecorder) FieldDimensions(arg0, arg1 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FieldDimensions", reflect.TypeOf((*MockShardGroup)(nil).FieldDimensions), arg0, arg1)
}

// IteratorCost mocks base method
func (m *MockShardGroup) IteratorCost(arg0 context.Context, arg1 *influxql.Measurement, arg2 query.IteratorOptions) (query.IteratorCost, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "IteratorCost", arg0, arg1, arg2)
	ret0, _ := ret[0].(query.IteratorCost)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// IteratorCost indicates an expected call of IteratorCost
func (mr *MockShardGroupMockRecorder) IteratorCost(arg0, arg1, arg2 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IteratorCost", reflect.TypeOf((*MockShardGroup)(nil).IteratorCost), arg0, arg1, arg2)
}

// MapType mocks base method
func (m *MockShardGroup) MapType(arg0 context.Context, arg1 *influxql.Measurement, arg2 string) influxql.DataType {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "MapType", arg0, arg1, arg2)
	ret0, _ := ret[0].(influxql.DataType)
	return ret0
}

// MapType indicates an expected call of MapType
func (mr *MockShardGroupMockRecorder) MapType(arg0, arg1, arg2 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MapType", reflect.TypeOf((*MockShardGroup)(nil).MapType), arg0, arg1, arg2)
}
