// Code generated by MockGen. DO NOT EDIT.
// Source: gitlab.com/gitlab-org/cluster-integration/tunnel/rpc (interfaces: ReverseTunnelClient)
//
// Generated by this command:
//
//	mockgen -typed -destination rpc.go -package mock_tunnel_rpc gitlab.com/gitlab-org/cluster-integration/tunnel/rpc ReverseTunnelClient
//

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

import (
	context "context"
	reflect "reflect"

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

// MockReverseTunnelClient is a mock of ReverseTunnelClient interface.
type MockReverseTunnelClient struct {
	ctrl     *gomock.Controller
	recorder *MockReverseTunnelClientMockRecorder
	isgomock struct{}
}

// MockReverseTunnelClientMockRecorder is the mock recorder for MockReverseTunnelClient.
type MockReverseTunnelClientMockRecorder struct {
	mock *MockReverseTunnelClient
}

// NewMockReverseTunnelClient creates a new mock instance.
func NewMockReverseTunnelClient(ctrl *gomock.Controller) *MockReverseTunnelClient {
	mock := &MockReverseTunnelClient{ctrl: ctrl}
	mock.recorder = &MockReverseTunnelClientMockRecorder{mock}
	return mock
}

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

// Connect mocks base method.
func (m *MockReverseTunnelClient) Connect(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[rpc.ConnectRequest, rpc.ConnectResponse], error) {
	m.ctrl.T.Helper()
	varargs := []any{ctx}
	for _, a := range opts {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Connect", varargs...)
	ret0, _ := ret[0].(grpc.BidiStreamingClient[rpc.ConnectRequest, rpc.ConnectResponse])
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Connect indicates an expected call of Connect.
func (mr *MockReverseTunnelClientMockRecorder) Connect(ctx any, opts ...any) *MockReverseTunnelClientConnectCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx}, opts...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Connect", reflect.TypeOf((*MockReverseTunnelClient)(nil).Connect), varargs...)
	return &MockReverseTunnelClientConnectCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockReverseTunnelClientConnectCall) Return(arg0 grpc.BidiStreamingClient[rpc.ConnectRequest, rpc.ConnectResponse], arg1 error) *MockReverseTunnelClientConnectCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockReverseTunnelClientConnectCall) Do(f func(context.Context, ...grpc.CallOption) (grpc.BidiStreamingClient[rpc.ConnectRequest, rpc.ConnectResponse], error)) *MockReverseTunnelClientConnectCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockReverseTunnelClientConnectCall) DoAndReturn(f func(context.Context, ...grpc.CallOption) (grpc.BidiStreamingClient[rpc.ConnectRequest, rpc.ConnectResponse], error)) *MockReverseTunnelClientConnectCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
