// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/MicahParks/keyfunc/v3 (interfaces: Keyfunc)
//
// Generated by this command:
//
//	mockgen -typed -destination keyfunc_mock_test.go -package server github.com/MicahParks/keyfunc/v3 Keyfunc
//

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

import (
	context "context"
	reflect "reflect"

	jwkset "github.com/MicahParks/jwkset"
	jwt "github.com/golang-jwt/jwt/v5"
	gomock "go.uber.org/mock/gomock"
)

// MockKeyfunc is a mock of Keyfunc interface.
type MockKeyfunc struct {
	ctrl     *gomock.Controller
	recorder *MockKeyfuncMockRecorder
	isgomock struct{}
}

// MockKeyfuncMockRecorder is the mock recorder for MockKeyfunc.
type MockKeyfuncMockRecorder struct {
	mock *MockKeyfunc
}

// NewMockKeyfunc creates a new mock instance.
func NewMockKeyfunc(ctrl *gomock.Controller) *MockKeyfunc {
	mock := &MockKeyfunc{ctrl: ctrl}
	mock.recorder = &MockKeyfuncMockRecorder{mock}
	return mock
}

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

// Keyfunc mocks base method.
func (m *MockKeyfunc) Keyfunc(token *jwt.Token) (any, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Keyfunc", token)
	ret0, _ := ret[0].(any)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Keyfunc indicates an expected call of Keyfunc.
func (mr *MockKeyfuncMockRecorder) Keyfunc(token any) *MockKeyfuncKeyfuncCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Keyfunc", reflect.TypeOf((*MockKeyfunc)(nil).Keyfunc), token)
	return &MockKeyfuncKeyfuncCall{Call: call}
}

// MockKeyfuncKeyfuncCall wrap *gomock.Call
type MockKeyfuncKeyfuncCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockKeyfuncKeyfuncCall) Return(arg0 any, arg1 error) *MockKeyfuncKeyfuncCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockKeyfuncKeyfuncCall) Do(f func(*jwt.Token) (any, error)) *MockKeyfuncKeyfuncCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockKeyfuncKeyfuncCall) DoAndReturn(f func(*jwt.Token) (any, error)) *MockKeyfuncKeyfuncCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

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

// KeyfuncCtx indicates an expected call of KeyfuncCtx.
func (mr *MockKeyfuncMockRecorder) KeyfuncCtx(ctx any) *MockKeyfuncKeyfuncCtxCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "KeyfuncCtx", reflect.TypeOf((*MockKeyfunc)(nil).KeyfuncCtx), ctx)
	return &MockKeyfuncKeyfuncCtxCall{Call: call}
}

// MockKeyfuncKeyfuncCtxCall wrap *gomock.Call
type MockKeyfuncKeyfuncCtxCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockKeyfuncKeyfuncCtxCall) Return(arg0 jwt.Keyfunc) *MockKeyfuncKeyfuncCtxCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockKeyfuncKeyfuncCtxCall) Do(f func(context.Context) jwt.Keyfunc) *MockKeyfuncKeyfuncCtxCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockKeyfuncKeyfuncCtxCall) DoAndReturn(f func(context.Context) jwt.Keyfunc) *MockKeyfuncKeyfuncCtxCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

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

// Storage indicates an expected call of Storage.
func (mr *MockKeyfuncMockRecorder) Storage() *MockKeyfuncStorageCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Storage", reflect.TypeOf((*MockKeyfunc)(nil).Storage))
	return &MockKeyfuncStorageCall{Call: call}
}

// MockKeyfuncStorageCall wrap *gomock.Call
type MockKeyfuncStorageCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockKeyfuncStorageCall) Return(arg0 jwkset.Storage) *MockKeyfuncStorageCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockKeyfuncStorageCall) Do(f func() jwkset.Storage) *MockKeyfuncStorageCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockKeyfuncStorageCall) DoAndReturn(f func() jwkset.Storage) *MockKeyfuncStorageCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

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

// VerificationKeySet indicates an expected call of VerificationKeySet.
func (mr *MockKeyfuncMockRecorder) VerificationKeySet(ctx any) *MockKeyfuncVerificationKeySetCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "VerificationKeySet", reflect.TypeOf((*MockKeyfunc)(nil).VerificationKeySet), ctx)
	return &MockKeyfuncVerificationKeySetCall{Call: call}
}

// MockKeyfuncVerificationKeySetCall wrap *gomock.Call
type MockKeyfuncVerificationKeySetCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockKeyfuncVerificationKeySetCall) Return(arg0 jwt.VerificationKeySet, arg1 error) *MockKeyfuncVerificationKeySetCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockKeyfuncVerificationKeySetCall) Do(f func(context.Context) (jwt.VerificationKeySet, error)) *MockKeyfuncVerificationKeySetCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockKeyfuncVerificationKeySetCall) DoAndReturn(f func(context.Context) (jwt.VerificationKeySet, error)) *MockKeyfuncVerificationKeySetCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
