// Code generated by MockGen. DO NOT EDIT.
// Source: ./internal/domain/facade/featuregate.go
//
// Generated by this command:
//
//	mockgen -source=./internal/domain/facade/featuregate.go -destination ./internal/domain/facade/mock_facade/mock_featuregate.go -package mock_facade
//

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

import (
	reflect "reflect"

	constant "github.com/tidbcloud/serverless-service/internal/domain/constant"
	gomock "go.uber.org/mock/gomock"
)

// MockFeatureGate is a mock of FeatureGate interface.
type MockFeatureGate struct {
	ctrl     *gomock.Controller
	recorder *MockFeatureGateMockRecorder
}

// MockFeatureGateMockRecorder is the mock recorder for MockFeatureGate.
type MockFeatureGateMockRecorder struct {
	mock *MockFeatureGate
}

// NewMockFeatureGate creates a new mock instance.
func NewMockFeatureGate(ctrl *gomock.Controller) *MockFeatureGate {
	mock := &MockFeatureGate{ctrl: ctrl}
	mock.recorder = &MockFeatureGateMockRecorder{mock}
	return mock
}

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

// FeatureEnabled mocks base method.
func (m *MockFeatureGate) FeatureEnabled(featureName constant.FeatureGateName, tenantID uint64, region string) bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "FeatureEnabled", featureName, tenantID, region)
	ret0, _ := ret[0].(bool)
	return ret0
}

// FeatureEnabled indicates an expected call of FeatureEnabled.
func (mr *MockFeatureGateMockRecorder) FeatureEnabled(featureName, tenantID, region any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FeatureEnabled", reflect.TypeOf((*MockFeatureGate)(nil).FeatureEnabled), featureName, tenantID, region)
}

// ListFeatureEnabledTenants mocks base method.
func (m *MockFeatureGate) ListFeatureEnabledTenants(featureName constant.FeatureGateName) []uint64 {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ListFeatureEnabledTenants", featureName)
	ret0, _ := ret[0].([]uint64)
	return ret0
}

// ListFeatureEnabledTenants indicates an expected call of ListFeatureEnabledTenants.
func (mr *MockFeatureGateMockRecorder) ListFeatureEnabledTenants(featureName any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListFeatureEnabledTenants", reflect.TypeOf((*MockFeatureGate)(nil).ListFeatureEnabledTenants), featureName)
}

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

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