// Code generated by MockGen. DO NOT EDIT.
// Source: ../../../module/agent2kas_tunnel/router/registry.go
//
// Generated by this command:
//
//	mockgen -typed -source ../../../module/agent2kas_tunnel/router/registry.go -destination registry.go -package mock_agent2kas_router
//

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

import (
	context "context"
	reflect "reflect"

	api "gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/api"
	rpc "gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/tunnel/rpc"
	gomock "go.uber.org/mock/gomock"
	grpc "google.golang.org/grpc"
)

// MockHandler is a mock of Handler interface.
type MockHandler struct {
	ctrl     *gomock.Controller
	recorder *MockHandlerMockRecorder
	isgomock struct{}
}

// MockHandlerMockRecorder is the mock recorder for MockHandler.
type MockHandlerMockRecorder struct {
	mock *MockHandler
}

// NewMockHandler creates a new mock instance.
func NewMockHandler(ctrl *gomock.Controller) *MockHandler {
	mock := &MockHandler{ctrl: ctrl}
	mock.recorder = &MockHandlerMockRecorder{mock}
	return mock
}

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

// HandleTunnel mocks base method.
func (m *MockHandler) HandleTunnel(ageCtx context.Context, agentInfo api.AgentInfo, server grpc.BidiStreamingServer[rpc.ConnectRequest, rpc.ConnectResponse]) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "HandleTunnel", ageCtx, agentInfo, server)
	ret0, _ := ret[0].(error)
	return ret0
}

// HandleTunnel indicates an expected call of HandleTunnel.
func (mr *MockHandlerMockRecorder) HandleTunnel(ageCtx, agentInfo, server any) *MockHandlerHandleTunnelCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleTunnel", reflect.TypeOf((*MockHandler)(nil).HandleTunnel), ageCtx, agentInfo, server)
	return &MockHandlerHandleTunnelCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockHandlerHandleTunnelCall) Return(arg0 error) *MockHandlerHandleTunnelCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockHandlerHandleTunnelCall) Do(f func(context.Context, api.AgentInfo, grpc.BidiStreamingServer[rpc.ConnectRequest, rpc.ConnectResponse]) error) *MockHandlerHandleTunnelCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockHandlerHandleTunnelCall) DoAndReturn(f func(context.Context, api.AgentInfo, grpc.BidiStreamingServer[rpc.ConnectRequest, rpc.ConnectResponse]) error) *MockHandlerHandleTunnelCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
