// Code generated by MockGen. DO NOT EDIT.
// Source: informer.go
//
// Generated by this command:
//
//	mockgen -source=informer.go -destination=informer_mock.go -package=metric MetricInformer
//

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

import (
	context "context"
	reflect "reflect"
	time "time"

	gomock "go.uber.org/mock/gomock"
	v2 "k8s.io/api/autoscaling/v2"
	v1 "k8s.io/api/core/v1"
)

// MockMetricInformer is a mock of MetricInformer interface.
type MockMetricInformer struct {
	ctrl     *gomock.Controller
	recorder *MockMetricInformerMockRecorder
}

// MockMetricInformerMockRecorder is the mock recorder for MockMetricInformer.
type MockMetricInformerMockRecorder struct {
	mock *MockMetricInformer
}

// NewMockMetricInformer creates a new mock instance.
func NewMockMetricInformer(ctrl *gomock.Controller) *MockMetricInformer {
	mock := &MockMetricInformer{ctrl: ctrl}
	mock.recorder = &MockMetricInformerMockRecorder{mock}
	return mock
}

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

// Register mocks base method.
func (m *MockMetricInformer) Register(ctx context.Context, model string, metrics []v2.MetricSpec, resource v1.ObjectReference, scrapeInterval, window time.Duration) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Register", ctx, model, metrics, resource, scrapeInterval, window)
}

// Register indicates an expected call of Register.
func (mr *MockMetricInformerMockRecorder) Register(ctx, model, metrics, resource, scrapeInterval, window any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Register", reflect.TypeOf((*MockMetricInformer)(nil).Register), ctx, model, metrics, resource, scrapeInterval, window)
}

// Start mocks base method.
func (m *MockMetricInformer) Start(ctx context.Context) <-chan MetricStatus {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Start", ctx)
	ret0, _ := ret[0].(<-chan MetricStatus)
	return ret0
}

// Start indicates an expected call of Start.
func (mr *MockMetricInformerMockRecorder) Start(ctx any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockMetricInformer)(nil).Start), ctx)
}

// Stop mocks base method.
func (m *MockMetricInformer) Stop() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Stop")
}

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

// Unregister mocks base method.
func (m *MockMetricInformer) Unregister(ctx context.Context, model string) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Unregister", ctx, model)
}

// Unregister indicates an expected call of Unregister.
func (mr *MockMetricInformerMockRecorder) Unregister(ctx, model any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unregister", reflect.TypeOf((*MockMetricInformer)(nil).Unregister), ctx, model)
}
