// Code generated by MockGen. DO NOT EDIT.
// Source: interface.go
//
// Generated by this command:
//
//	mockgen -source=interface.go -destination=mock.go -package=auth
//

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

import (
	context "context"
	reflect "reflect"

	gin "github.com/gin-gonic/gin"
	gomock "go.uber.org/mock/gomock"
	oauth2 "golang.org/x/oauth2"
)

// MockProvider is a mock of Provider interface.
type MockProvider struct {
	ctrl     *gomock.Controller
	recorder *MockProviderMockRecorder
	isgomock struct{}
}

// MockProviderMockRecorder is the mock recorder for MockProvider.
type MockProviderMockRecorder struct {
	mock *MockProvider
}

// NewMockProvider creates a new mock instance.
func NewMockProvider(ctrl *gomock.Controller) *MockProvider {
	mock := &MockProvider{ctrl: ctrl}
	mock.recorder = &MockProviderMockRecorder{mock}
	return mock
}

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

// AuthCodeURL mocks base method.
func (m *MockProvider) AuthCodeURL(state string) (string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AuthCodeURL", state)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// AuthCodeURL indicates an expected call of AuthCodeURL.
func (mr *MockProviderMockRecorder) AuthCodeURL(state any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AuthCodeURL", reflect.TypeOf((*MockProvider)(nil).AuthCodeURL), state)
}

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

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

// Authorization mocks base method.
func (m *MockProvider) Authorization(ctx context.Context, token *oauth2.Token) (bool, string, map[string]any, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Authorization", ctx, token)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(string)
	ret2, _ := ret[2].(map[string]any)
	ret3, _ := ret[3].(error)
	return ret0, ret1, ret2, ret3
}

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

// Exchange mocks base method.
func (m *MockProvider) Exchange(c *gin.Context, state string) (*oauth2.Token, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Exchange", c, state)
	ret0, _ := ret[0].(*oauth2.Token)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Exchange indicates an expected call of Exchange.
func (mr *MockProviderMockRecorder) Exchange(c, state any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Exchange", reflect.TypeOf((*MockProvider)(nil).Exchange), c, state)
}

// Name mocks base method.
func (m *MockProvider) 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 *MockProviderMockRecorder) Name() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Name", reflect.TypeOf((*MockProvider)(nil).Name))
}

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

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

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

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