// Code generated by MockGen. DO NOT EDIT.
// Source: gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/module/kubernetes_api/agentk/watch_graph (interfaces: ObjectGraphObserver)
//
// Generated by this command:
//
//	mockgen -typed -destination mock_for_test.go -package watch_graph gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/module/kubernetes_api/agentk/watch_graph ObjectGraphObserver
//

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

import (
	context "context"
	reflect "reflect"

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

// MockObjectGraphObserver is a mock of ObjectGraphObserver interface.
type MockObjectGraphObserver[VID comparable, AT comparable, VD any, AD any] struct {
	ctrl     *gomock.Controller
	recorder *MockObjectGraphObserverMockRecorder[VID, AT, VD, AD]
	isgomock struct{}
}

// MockObjectGraphObserverMockRecorder is the mock recorder for MockObjectGraphObserver.
type MockObjectGraphObserverMockRecorder[VID comparable, AT comparable, VD any, AD any] struct {
	mock *MockObjectGraphObserver[VID, AT, VD, AD]
}

// NewMockObjectGraphObserver creates a new mock instance.
func NewMockObjectGraphObserver[VID comparable, AT comparable, VD any, AD any](ctrl *gomock.Controller) *MockObjectGraphObserver[VID, AT, VD, AD] {
	mock := &MockObjectGraphObserver[VID, AT, VD, AD]{ctrl: ctrl}
	mock.recorder = &MockObjectGraphObserverMockRecorder[VID, AT, VD, AD]{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockObjectGraphObserver[VID, AT, VD, AD]) EXPECT() *MockObjectGraphObserverMockRecorder[VID, AT, VD, AD] {
	return m.recorder
}

// OnDeleteArc mocks base method.
func (m *MockObjectGraphObserver[VID, AT, VD, AD]) OnDeleteArc(ctx context.Context, insp GraphInspector[VID, AT, VD, AD], from VID, to ArcToID[VID, AT]) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "OnDeleteArc", ctx, insp, from, to)
}

// OnDeleteArc indicates an expected call of OnDeleteArc.
func (mr *MockObjectGraphObserverMockRecorder[VID, AT, VD, AD]) OnDeleteArc(ctx, insp, from, to any) *MockObjectGraphObserverOnDeleteArcCall[VID, AT, VD, AD] {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnDeleteArc", reflect.TypeOf((*MockObjectGraphObserver[VID, AT, VD, AD])(nil).OnDeleteArc), ctx, insp, from, to)
	return &MockObjectGraphObserverOnDeleteArcCall[VID, AT, VD, AD]{Call: call}
}

// MockObjectGraphObserverOnDeleteArcCall wrap *gomock.Call
type MockObjectGraphObserverOnDeleteArcCall[VID comparable, AT comparable, VD any, AD any] struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockObjectGraphObserverOnDeleteArcCall[VID, AT, VD, AD]) Return() *MockObjectGraphObserverOnDeleteArcCall[VID, AT, VD, AD] {
	c.Call = c.Call.Return()
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockObjectGraphObserverOnDeleteArcCall[VID, AT, VD, AD]) Do(f func(context.Context, GraphInspector[VID, AT, VD, AD], VID, ArcToID[VID, AT])) *MockObjectGraphObserverOnDeleteArcCall[VID, AT, VD, AD] {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockObjectGraphObserverOnDeleteArcCall[VID, AT, VD, AD]) DoAndReturn(f func(context.Context, GraphInspector[VID, AT, VD, AD], VID, ArcToID[VID, AT])) *MockObjectGraphObserverOnDeleteArcCall[VID, AT, VD, AD] {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// OnDeleteVertex mocks base method.
func (m *MockObjectGraphObserver[VID, AT, VD, AD]) OnDeleteVertex(arg0 context.Context, arg1 GraphInspector[VID, AT, VD, AD], arg2 VID) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "OnDeleteVertex", arg0, arg1, arg2)
}

// OnDeleteVertex indicates an expected call of OnDeleteVertex.
func (mr *MockObjectGraphObserverMockRecorder[VID, AT, VD, AD]) OnDeleteVertex(arg0, arg1, arg2 any) *MockObjectGraphObserverOnDeleteVertexCall[VID, AT, VD, AD] {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnDeleteVertex", reflect.TypeOf((*MockObjectGraphObserver[VID, AT, VD, AD])(nil).OnDeleteVertex), arg0, arg1, arg2)
	return &MockObjectGraphObserverOnDeleteVertexCall[VID, AT, VD, AD]{Call: call}
}

// MockObjectGraphObserverOnDeleteVertexCall wrap *gomock.Call
type MockObjectGraphObserverOnDeleteVertexCall[VID comparable, AT comparable, VD any, AD any] struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockObjectGraphObserverOnDeleteVertexCall[VID, AT, VD, AD]) Return() *MockObjectGraphObserverOnDeleteVertexCall[VID, AT, VD, AD] {
	c.Call = c.Call.Return()
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockObjectGraphObserverOnDeleteVertexCall[VID, AT, VD, AD]) Do(f func(context.Context, GraphInspector[VID, AT, VD, AD], VID)) *MockObjectGraphObserverOnDeleteVertexCall[VID, AT, VD, AD] {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockObjectGraphObserverOnDeleteVertexCall[VID, AT, VD, AD]) DoAndReturn(f func(context.Context, GraphInspector[VID, AT, VD, AD], VID)) *MockObjectGraphObserverOnDeleteVertexCall[VID, AT, VD, AD] {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// OnSetArc mocks base method.
func (m *MockObjectGraphObserver[VID, AT, VD, AD]) OnSetArc(ctx context.Context, insp GraphInspector[VID, AT, VD, AD], from VID, to ArcToID[VID, AT], data AD) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "OnSetArc", ctx, insp, from, to, data)
}

// OnSetArc indicates an expected call of OnSetArc.
func (mr *MockObjectGraphObserverMockRecorder[VID, AT, VD, AD]) OnSetArc(ctx, insp, from, to, data any) *MockObjectGraphObserverOnSetArcCall[VID, AT, VD, AD] {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnSetArc", reflect.TypeOf((*MockObjectGraphObserver[VID, AT, VD, AD])(nil).OnSetArc), ctx, insp, from, to, data)
	return &MockObjectGraphObserverOnSetArcCall[VID, AT, VD, AD]{Call: call}
}

// MockObjectGraphObserverOnSetArcCall wrap *gomock.Call
type MockObjectGraphObserverOnSetArcCall[VID comparable, AT comparable, VD any, AD any] struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockObjectGraphObserverOnSetArcCall[VID, AT, VD, AD]) Return() *MockObjectGraphObserverOnSetArcCall[VID, AT, VD, AD] {
	c.Call = c.Call.Return()
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockObjectGraphObserverOnSetArcCall[VID, AT, VD, AD]) Do(f func(context.Context, GraphInspector[VID, AT, VD, AD], VID, ArcToID[VID, AT], AD)) *MockObjectGraphObserverOnSetArcCall[VID, AT, VD, AD] {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockObjectGraphObserverOnSetArcCall[VID, AT, VD, AD]) DoAndReturn(f func(context.Context, GraphInspector[VID, AT, VD, AD], VID, ArcToID[VID, AT], AD)) *MockObjectGraphObserverOnSetArcCall[VID, AT, VD, AD] {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// OnSetVertex mocks base method.
func (m *MockObjectGraphObserver[VID, AT, VD, AD]) OnSetVertex(arg0 context.Context, arg1 GraphInspector[VID, AT, VD, AD], arg2 VID, arg3 VD) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "OnSetVertex", arg0, arg1, arg2, arg3)
}

// OnSetVertex indicates an expected call of OnSetVertex.
func (mr *MockObjectGraphObserverMockRecorder[VID, AT, VD, AD]) OnSetVertex(arg0, arg1, arg2, arg3 any) *MockObjectGraphObserverOnSetVertexCall[VID, AT, VD, AD] {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnSetVertex", reflect.TypeOf((*MockObjectGraphObserver[VID, AT, VD, AD])(nil).OnSetVertex), arg0, arg1, arg2, arg3)
	return &MockObjectGraphObserverOnSetVertexCall[VID, AT, VD, AD]{Call: call}
}

// MockObjectGraphObserverOnSetVertexCall wrap *gomock.Call
type MockObjectGraphObserverOnSetVertexCall[VID comparable, AT comparable, VD any, AD any] struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockObjectGraphObserverOnSetVertexCall[VID, AT, VD, AD]) Return() *MockObjectGraphObserverOnSetVertexCall[VID, AT, VD, AD] {
	c.Call = c.Call.Return()
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockObjectGraphObserverOnSetVertexCall[VID, AT, VD, AD]) Do(f func(context.Context, GraphInspector[VID, AT, VD, AD], VID, VD)) *MockObjectGraphObserverOnSetVertexCall[VID, AT, VD, AD] {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockObjectGraphObserverOnSetVertexCall[VID, AT, VD, AD]) DoAndReturn(f func(context.Context, GraphInspector[VID, AT, VD, AD], VID, VD)) *MockObjectGraphObserverOnSetVertexCall[VID, AT, VD, AD] {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
