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

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

import (
	context "context"
	reflect "reflect"

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

// MockMultiSessionFactory is a mock of MultiSessionFactory interface.
type MockMultiSessionFactory struct {
	ctrl     *gomock.Controller
	recorder *MockMultiSessionFactoryMockRecorder
	isgomock struct{}
}

// MockMultiSessionFactoryMockRecorder is the mock recorder for MockMultiSessionFactory.
type MockMultiSessionFactoryMockRecorder struct {
	mock *MockMultiSessionFactory
}

// NewMockMultiSessionFactory creates a new mock instance.
func NewMockMultiSessionFactory(ctrl *gomock.Controller) *MockMultiSessionFactory {
	mock := &MockMultiSessionFactory{ctrl: ctrl}
	mock.recorder = &MockMultiSessionFactoryMockRecorder{mock}
	return mock
}

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

// MakeSessionWithID mocks base method.
func (m *MockMultiSessionFactory) MakeSessionWithID(ctx context.Context, id string, identity *auth.Identity, allowAnonymous bool, backends []*vmcp.Backend) (session.MultiSession, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "MakeSessionWithID", ctx, id, identity, allowAnonymous, backends)
	ret0, _ := ret[0].(session.MultiSession)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// MakeSessionWithID indicates an expected call of MakeSessionWithID.
func (mr *MockMultiSessionFactoryMockRecorder) MakeSessionWithID(ctx, id, identity, allowAnonymous, backends any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MakeSessionWithID", reflect.TypeOf((*MockMultiSessionFactory)(nil).MakeSessionWithID), ctx, id, identity, allowAnonymous, backends)
}

// RestoreSession mocks base method.
func (m *MockMultiSessionFactory) RestoreSession(ctx context.Context, id string, storedMetadata map[string]string, allBackends []*vmcp.Backend) (session.MultiSession, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RestoreSession", ctx, id, storedMetadata, allBackends)
	ret0, _ := ret[0].(session.MultiSession)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// RestoreSession indicates an expected call of RestoreSession.
func (mr *MockMultiSessionFactoryMockRecorder) RestoreSession(ctx, id, storedMetadata, allBackends any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RestoreSession", reflect.TypeOf((*MockMultiSessionFactory)(nil).RestoreSession), ctx, id, storedMetadata, allBackends)
}
