// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/authelia/authelia/v4/internal/duo (interfaces: Provider)
//
// Generated by this command:
//
//	mockgen -package mocks -destination duo_api.go -mock_names Provider=MockDuoProvider github.com/authelia/authelia/v4/internal/duo Provider
//

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

import (
	url "net/url"
	reflect "reflect"

	duo "github.com/authelia/authelia/v4/internal/duo"
	middlewares "github.com/authelia/authelia/v4/internal/middlewares"
	session "github.com/authelia/authelia/v4/internal/session"
	gomock "go.uber.org/mock/gomock"
)

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

// MockDuoProviderMockRecorder is the mock recorder for MockDuoProvider.
type MockDuoProviderMockRecorder struct {
	mock *MockDuoProvider
}

// NewMockDuoProvider creates a new mock instance.
func NewMockDuoProvider(ctrl *gomock.Controller) *MockDuoProvider {
	mock := &MockDuoProvider{ctrl: ctrl}
	mock.recorder = &MockDuoProviderMockRecorder{mock}
	return mock
}

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

// AuthCall mocks base method.
func (m *MockDuoProvider) AuthCall(ctx *middlewares.AutheliaCtx, userSession *session.UserSession, values url.Values) (*duo.AuthResponse, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AuthCall", ctx, userSession, values)
	ret0, _ := ret[0].(*duo.AuthResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// AuthCall indicates an expected call of AuthCall.
func (mr *MockDuoProviderMockRecorder) AuthCall(ctx, userSession, values any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AuthCall", reflect.TypeOf((*MockDuoProvider)(nil).AuthCall), ctx, userSession, values)
}

// Call mocks base method.
func (m *MockDuoProvider) Call(ctx *middlewares.AutheliaCtx, userSession *session.UserSession, values url.Values, method, path string) (*duo.Response, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Call", ctx, userSession, values, method, path)
	ret0, _ := ret[0].(*duo.Response)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Call indicates an expected call of Call.
func (mr *MockDuoProviderMockRecorder) Call(ctx, userSession, values, method, path any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Call", reflect.TypeOf((*MockDuoProvider)(nil).Call), ctx, userSession, values, method, path)
}

// PreAuthCall mocks base method.
func (m *MockDuoProvider) PreAuthCall(ctx *middlewares.AutheliaCtx, userSession *session.UserSession, values url.Values) (*duo.PreAuthResponse, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "PreAuthCall", ctx, userSession, values)
	ret0, _ := ret[0].(*duo.PreAuthResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// PreAuthCall indicates an expected call of PreAuthCall.
func (mr *MockDuoProviderMockRecorder) PreAuthCall(ctx, userSession, values any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PreAuthCall", reflect.TypeOf((*MockDuoProvider)(nil).PreAuthCall), ctx, userSession, values)
}
