// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/stacklok/toolhive/pkg/vmcp/auth (interfaces: Strategy)
//
// Generated by this command:
//
//	mockgen -destination=mocks/mock_strategy.go -package=mocks github.com/stacklok/toolhive/pkg/vmcp/auth Strategy
//

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

import (
	context "context"
	http "net/http"
	reflect "reflect"

	types "github.com/stacklok/toolhive/pkg/vmcp/auth/types"
	gomock "go.uber.org/mock/gomock"
)

// MockStrategy is a mock of Strategy interface.
type MockStrategy struct {
	ctrl     *gomock.Controller
	recorder *MockStrategyMockRecorder
	isgomock struct{}
}

// MockStrategyMockRecorder is the mock recorder for MockStrategy.
type MockStrategyMockRecorder struct {
	mock *MockStrategy
}

// NewMockStrategy creates a new mock instance.
func NewMockStrategy(ctrl *gomock.Controller) *MockStrategy {
	mock := &MockStrategy{ctrl: ctrl}
	mock.recorder = &MockStrategyMockRecorder{mock}
	return mock
}

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

// Authenticate mocks base method.
func (m *MockStrategy) Authenticate(ctx context.Context, req *http.Request, strategy *types.BackendAuthStrategy) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Authenticate", ctx, req, strategy)
	ret0, _ := ret[0].(error)
	return ret0
}

// Authenticate indicates an expected call of Authenticate.
func (mr *MockStrategyMockRecorder) Authenticate(ctx, req, strategy any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Authenticate", reflect.TypeOf((*MockStrategy)(nil).Authenticate), ctx, req, strategy)
}

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

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

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

// Validate indicates an expected call of Validate.
func (mr *MockStrategyMockRecorder) Validate(strategy any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Validate", reflect.TypeOf((*MockStrategy)(nil).Validate), strategy)
}
