// Code generated by MockGen. DO NOT EDIT.
// Source: pkg/scalers/scaler.go

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

import (
	context "context"
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
	v2beta2 "k8s.io/api/autoscaling/v2beta2"
	labels "k8s.io/apimachinery/pkg/labels"
	external_metrics "k8s.io/metrics/pkg/apis/external_metrics"
)

// MockScaler is a mock of Scaler interface.
type MockScaler struct {
	ctrl     *gomock.Controller
	recorder *MockScalerMockRecorder
}

// MockScalerMockRecorder is the mock recorder for MockScaler.
type MockScalerMockRecorder struct {
	mock *MockScaler
}

// NewMockScaler creates a new mock instance.
func NewMockScaler(ctrl *gomock.Controller) *MockScaler {
	mock := &MockScaler{ctrl: ctrl}
	mock.recorder = &MockScalerMockRecorder{mock}
	return mock
}

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

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

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

// GetMetricSpecForScaling mocks base method.
func (m *MockScaler) GetMetricSpecForScaling(ctx context.Context) []v2beta2.MetricSpec {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetMetricSpecForScaling", ctx)
	ret0, _ := ret[0].([]v2beta2.MetricSpec)
	return ret0
}

// GetMetricSpecForScaling indicates an expected call of GetMetricSpecForScaling.
func (mr *MockScalerMockRecorder) GetMetricSpecForScaling(ctx interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetricSpecForScaling", reflect.TypeOf((*MockScaler)(nil).GetMetricSpecForScaling), ctx)
}

// GetMetrics mocks base method.
func (m *MockScaler) GetMetrics(ctx context.Context, metricName string, metricSelector labels.Selector) ([]external_metrics.ExternalMetricValue, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetMetrics", ctx, metricName, metricSelector)
	ret0, _ := ret[0].([]external_metrics.ExternalMetricValue)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetMetrics indicates an expected call of GetMetrics.
func (mr *MockScalerMockRecorder) GetMetrics(ctx, metricName, metricSelector interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetrics", reflect.TypeOf((*MockScaler)(nil).GetMetrics), ctx, metricName, metricSelector)
}

// IsActive mocks base method.
func (m *MockScaler) IsActive(ctx context.Context) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "IsActive", ctx)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// IsActive indicates an expected call of IsActive.
func (mr *MockScalerMockRecorder) IsActive(ctx interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsActive", reflect.TypeOf((*MockScaler)(nil).IsActive), ctx)
}

// MockPushScaler is a mock of PushScaler interface.
type MockPushScaler struct {
	ctrl     *gomock.Controller
	recorder *MockPushScalerMockRecorder
}

// MockPushScalerMockRecorder is the mock recorder for MockPushScaler.
type MockPushScalerMockRecorder struct {
	mock *MockPushScaler
}

// NewMockPushScaler creates a new mock instance.
func NewMockPushScaler(ctrl *gomock.Controller) *MockPushScaler {
	mock := &MockPushScaler{ctrl: ctrl}
	mock.recorder = &MockPushScalerMockRecorder{mock}
	return mock
}

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

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

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

// GetMetricSpecForScaling mocks base method.
func (m *MockPushScaler) GetMetricSpecForScaling(ctx context.Context) []v2beta2.MetricSpec {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetMetricSpecForScaling", ctx)
	ret0, _ := ret[0].([]v2beta2.MetricSpec)
	return ret0
}

// GetMetricSpecForScaling indicates an expected call of GetMetricSpecForScaling.
func (mr *MockPushScalerMockRecorder) GetMetricSpecForScaling(ctx interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetricSpecForScaling", reflect.TypeOf((*MockPushScaler)(nil).GetMetricSpecForScaling), ctx)
}

// GetMetrics mocks base method.
func (m *MockPushScaler) GetMetrics(ctx context.Context, metricName string, metricSelector labels.Selector) ([]external_metrics.ExternalMetricValue, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetMetrics", ctx, metricName, metricSelector)
	ret0, _ := ret[0].([]external_metrics.ExternalMetricValue)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetMetrics indicates an expected call of GetMetrics.
func (mr *MockPushScalerMockRecorder) GetMetrics(ctx, metricName, metricSelector interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetrics", reflect.TypeOf((*MockPushScaler)(nil).GetMetrics), ctx, metricName, metricSelector)
}

// IsActive mocks base method.
func (m *MockPushScaler) IsActive(ctx context.Context) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "IsActive", ctx)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// IsActive indicates an expected call of IsActive.
func (mr *MockPushScalerMockRecorder) IsActive(ctx interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsActive", reflect.TypeOf((*MockPushScaler)(nil).IsActive), ctx)
}

// Run mocks base method.
func (m *MockPushScaler) Run(ctx context.Context, active chan<- bool) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Run", ctx, active)
}

// Run indicates an expected call of Run.
func (mr *MockPushScalerMockRecorder) Run(ctx, active interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Run", reflect.TypeOf((*MockPushScaler)(nil).Run), ctx, active)
}
