// Code generated by MockGen. DO NOT EDIT.
// Source: gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/tool/errz (interfaces: ErrReporter)
//
// Generated by this command:
//
//	mockgen -typed -destination tool.go -package mock_tool gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/tool/errz ErrReporter
//

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

import (
	context "context"
	slog "log/slog"
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"
)

// MockErrReporter is a mock of ErrReporter interface.
type MockErrReporter struct {
	ctrl     *gomock.Controller
	recorder *MockErrReporterMockRecorder
	isgomock struct{}
}

// MockErrReporterMockRecorder is the mock recorder for MockErrReporter.
type MockErrReporterMockRecorder struct {
	mock *MockErrReporter
}

// NewMockErrReporter creates a new mock instance.
func NewMockErrReporter(ctrl *gomock.Controller) *MockErrReporter {
	mock := &MockErrReporter{ctrl: ctrl}
	mock.recorder = &MockErrReporterMockRecorder{mock}
	return mock
}

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

// HandleProcessingError mocks base method.
func (m *MockErrReporter) HandleProcessingError(ctx context.Context, log *slog.Logger, msg string, err error, fields ...slog.Attr) {
	m.ctrl.T.Helper()
	varargs := []any{ctx, log, msg, err}
	for _, a := range fields {
		varargs = append(varargs, a)
	}
	m.ctrl.Call(m, "HandleProcessingError", varargs...)
}

// HandleProcessingError indicates an expected call of HandleProcessingError.
func (mr *MockErrReporterMockRecorder) HandleProcessingError(ctx, log, msg, err any, fields ...any) *MockErrReporterHandleProcessingErrorCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, log, msg, err}, fields...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleProcessingError", reflect.TypeOf((*MockErrReporter)(nil).HandleProcessingError), varargs...)
	return &MockErrReporterHandleProcessingErrorCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockErrReporterHandleProcessingErrorCall) Return() *MockErrReporterHandleProcessingErrorCall {
	c.Call = c.Call.Return()
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockErrReporterHandleProcessingErrorCall) Do(f func(context.Context, *slog.Logger, string, error, ...slog.Attr)) *MockErrReporterHandleProcessingErrorCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockErrReporterHandleProcessingErrorCall) DoAndReturn(f func(context.Context, *slog.Logger, string, error, ...slog.Attr)) *MockErrReporterHandleProcessingErrorCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
