// Copyright 2025 Antrea Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

// Code generated by MockGen. DO NOT EDIT.
// Source: antrea.io/antrea/pkg/util/objectstore (interfaces: NodeStore,PodStore,ServiceStore)
//
// Generated by this command:
//
//	mockgen -copyright_file hack/boilerplate/license_header.raw.txt -destination pkg/util/objectstore/testing/mock_objectstore.go -package testing antrea.io/antrea/pkg/util/objectstore NodeStore,PodStore,ServiceStore
//

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

import (
	reflect "reflect"
	time "time"

	gomock "go.uber.org/mock/gomock"
	v1 "k8s.io/api/core/v1"
)

// MockNodeStore is a mock of NodeStore interface.
type MockNodeStore struct {
	ctrl     *gomock.Controller
	recorder *MockNodeStoreMockRecorder
	isgomock struct{}
}

// MockNodeStoreMockRecorder is the mock recorder for MockNodeStore.
type MockNodeStoreMockRecorder struct {
	mock *MockNodeStore
}

// NewMockNodeStore creates a new mock instance.
func NewMockNodeStore(ctrl *gomock.Controller) *MockNodeStore {
	mock := &MockNodeStore{ctrl: ctrl}
	mock.recorder = &MockNodeStoreMockRecorder{mock}
	return mock
}

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

// GetNodeByNameAndTime mocks base method.
func (m *MockNodeStore) GetNodeByNameAndTime(name string, startTime time.Time) (*v1.Node, bool) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetNodeByNameAndTime", name, startTime)
	ret0, _ := ret[0].(*v1.Node)
	ret1, _ := ret[1].(bool)
	return ret0, ret1
}

// GetNodeByNameAndTime indicates an expected call of GetNodeByNameAndTime.
func (mr *MockNodeStoreMockRecorder) GetNodeByNameAndTime(name, startTime any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetNodeByNameAndTime", reflect.TypeOf((*MockNodeStore)(nil).GetNodeByNameAndTime), name, startTime)
}

// HasSynced mocks base method.
func (m *MockNodeStore) HasSynced() bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "HasSynced")
	ret0, _ := ret[0].(bool)
	return ret0
}

// HasSynced indicates an expected call of HasSynced.
func (mr *MockNodeStoreMockRecorder) HasSynced() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HasSynced", reflect.TypeOf((*MockNodeStore)(nil).HasSynced))
}

// Run mocks base method.
func (m *MockNodeStore) Run(stopCh <-chan struct{}) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Run", stopCh)
}

// Run indicates an expected call of Run.
func (mr *MockNodeStoreMockRecorder) Run(stopCh any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Run", reflect.TypeOf((*MockNodeStore)(nil).Run), stopCh)
}

// MockPodStore is a mock of PodStore interface.
type MockPodStore struct {
	ctrl     *gomock.Controller
	recorder *MockPodStoreMockRecorder
	isgomock struct{}
}

// MockPodStoreMockRecorder is the mock recorder for MockPodStore.
type MockPodStoreMockRecorder struct {
	mock *MockPodStore
}

// NewMockPodStore creates a new mock instance.
func NewMockPodStore(ctrl *gomock.Controller) *MockPodStore {
	mock := &MockPodStore{ctrl: ctrl}
	mock.recorder = &MockPodStoreMockRecorder{mock}
	return mock
}

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

// GetPodByIPAndTime mocks base method.
func (m *MockPodStore) GetPodByIPAndTime(ip string, startTime time.Time) (*v1.Pod, bool) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetPodByIPAndTime", ip, startTime)
	ret0, _ := ret[0].(*v1.Pod)
	ret1, _ := ret[1].(bool)
	return ret0, ret1
}

// GetPodByIPAndTime indicates an expected call of GetPodByIPAndTime.
func (mr *MockPodStoreMockRecorder) GetPodByIPAndTime(ip, startTime any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPodByIPAndTime", reflect.TypeOf((*MockPodStore)(nil).GetPodByIPAndTime), ip, startTime)
}

// HasSynced mocks base method.
func (m *MockPodStore) HasSynced() bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "HasSynced")
	ret0, _ := ret[0].(bool)
	return ret0
}

// HasSynced indicates an expected call of HasSynced.
func (mr *MockPodStoreMockRecorder) HasSynced() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HasSynced", reflect.TypeOf((*MockPodStore)(nil).HasSynced))
}

// Run mocks base method.
func (m *MockPodStore) Run(stopCh <-chan struct{}) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Run", stopCh)
}

// Run indicates an expected call of Run.
func (mr *MockPodStoreMockRecorder) Run(stopCh any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Run", reflect.TypeOf((*MockPodStore)(nil).Run), stopCh)
}

// MockServiceStore is a mock of ServiceStore interface.
type MockServiceStore struct {
	ctrl     *gomock.Controller
	recorder *MockServiceStoreMockRecorder
	isgomock struct{}
}

// MockServiceStoreMockRecorder is the mock recorder for MockServiceStore.
type MockServiceStoreMockRecorder struct {
	mock *MockServiceStore
}

// NewMockServiceStore creates a new mock instance.
func NewMockServiceStore(ctrl *gomock.Controller) *MockServiceStore {
	mock := &MockServiceStore{ctrl: ctrl}
	mock.recorder = &MockServiceStoreMockRecorder{mock}
	return mock
}

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

// GetServiceByNamespacedNameAndTime mocks base method.
func (m *MockServiceStore) GetServiceByNamespacedNameAndTime(namespacedName string, startTime time.Time) (*v1.Service, bool) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetServiceByNamespacedNameAndTime", namespacedName, startTime)
	ret0, _ := ret[0].(*v1.Service)
	ret1, _ := ret[1].(bool)
	return ret0, ret1
}

// GetServiceByNamespacedNameAndTime indicates an expected call of GetServiceByNamespacedNameAndTime.
func (mr *MockServiceStoreMockRecorder) GetServiceByNamespacedNameAndTime(namespacedName, startTime any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetServiceByNamespacedNameAndTime", reflect.TypeOf((*MockServiceStore)(nil).GetServiceByNamespacedNameAndTime), namespacedName, startTime)
}

// HasSynced mocks base method.
func (m *MockServiceStore) HasSynced() bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "HasSynced")
	ret0, _ := ret[0].(bool)
	return ret0
}

// HasSynced indicates an expected call of HasSynced.
func (mr *MockServiceStoreMockRecorder) HasSynced() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HasSynced", reflect.TypeOf((*MockServiceStore)(nil).HasSynced))
}

// Run mocks base method.
func (m *MockServiceStore) Run(stopCh <-chan struct{}) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Run", stopCh)
}

// Run indicates an expected call of Run.
func (mr *MockServiceStoreMockRecorder) Run(stopCh any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Run", reflect.TypeOf((*MockServiceStore)(nil).Run), stopCh)
}
