// 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/flowaggregator/intermediate (interfaces: AggregationProcess)
//
// Generated by this command:
//
//	mockgen -copyright_file hack/boilerplate/license_header.raw.txt -destination pkg/flowaggregator/intermediate/testing/mock_intermediate.go -package testing antrea.io/antrea/pkg/flowaggregator/intermediate AggregationProcess
//

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

import (
	reflect "reflect"
	time "time"

	v1alpha1 "antrea.io/antrea/pkg/apis/flow/v1alpha1"
	intermediate "antrea.io/antrea/pkg/flowaggregator/intermediate"
	gomock "go.uber.org/mock/gomock"
)

// MockAggregationProcess is a mock of AggregationProcess interface.
type MockAggregationProcess struct {
	ctrl     *gomock.Controller
	recorder *MockAggregationProcessMockRecorder
	isgomock struct{}
}

// MockAggregationProcessMockRecorder is the mock recorder for MockAggregationProcess.
type MockAggregationProcessMockRecorder struct {
	mock *MockAggregationProcess
}

// NewMockAggregationProcess creates a new mock instance.
func NewMockAggregationProcess(ctrl *gomock.Controller) *MockAggregationProcess {
	mock := &MockAggregationProcess{ctrl: ctrl}
	mock.recorder = &MockAggregationProcessMockRecorder{mock}
	return mock
}

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

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

// AreCorrelatedFieldsFilled indicates an expected call of AreCorrelatedFieldsFilled.
func (mr *MockAggregationProcessMockRecorder) AreCorrelatedFieldsFilled(record any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AreCorrelatedFieldsFilled", reflect.TypeOf((*MockAggregationProcess)(nil).AreCorrelatedFieldsFilled), record)
}

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

// AreExternalFieldsFilled indicates an expected call of AreExternalFieldsFilled.
func (mr *MockAggregationProcessMockRecorder) AreExternalFieldsFilled(record any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AreExternalFieldsFilled", reflect.TypeOf((*MockAggregationProcess)(nil).AreExternalFieldsFilled), record)
}

// ForAllExpiredFlowRecordsDo mocks base method.
func (m *MockAggregationProcess) ForAllExpiredFlowRecordsDo(callback intermediate.FlowKeyRecordMapCallBack) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ForAllExpiredFlowRecordsDo", callback)
	ret0, _ := ret[0].(error)
	return ret0
}

// ForAllExpiredFlowRecordsDo indicates an expected call of ForAllExpiredFlowRecordsDo.
func (mr *MockAggregationProcessMockRecorder) ForAllExpiredFlowRecordsDo(callback any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ForAllExpiredFlowRecordsDo", reflect.TypeOf((*MockAggregationProcess)(nil).ForAllExpiredFlowRecordsDo), callback)
}

// GetExpiryFromExpirePriorityQueue mocks base method.
func (m *MockAggregationProcess) GetExpiryFromExpirePriorityQueue() time.Duration {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetExpiryFromExpirePriorityQueue")
	ret0, _ := ret[0].(time.Duration)
	return ret0
}

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

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

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

// GetRecords mocks base method.
func (m *MockAggregationProcess) GetRecords(flowKey *intermediate.FlowKey) []map[string]any {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetRecords", flowKey)
	ret0, _ := ret[0].([]map[string]any)
	return ret0
}

// GetRecords indicates an expected call of GetRecords.
func (mr *MockAggregationProcessMockRecorder) GetRecords(flowKey any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRecords", reflect.TypeOf((*MockAggregationProcess)(nil).GetRecords), flowKey)
}

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

// IsAggregatedRecordIPv4 indicates an expected call of IsAggregatedRecordIPv4.
func (mr *MockAggregationProcessMockRecorder) IsAggregatedRecordIPv4(record any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsAggregatedRecordIPv4", reflect.TypeOf((*MockAggregationProcess)(nil).IsAggregatedRecordIPv4), record)
}

// ResetStatAndThroughputElementsInRecord mocks base method.
func (m *MockAggregationProcess) ResetStatAndThroughputElementsInRecord(record *v1alpha1.Flow) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ResetStatAndThroughputElementsInRecord", record)
	ret0, _ := ret[0].(error)
	return ret0
}

// ResetStatAndThroughputElementsInRecord indicates an expected call of ResetStatAndThroughputElementsInRecord.
func (mr *MockAggregationProcessMockRecorder) ResetStatAndThroughputElementsInRecord(record any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResetStatAndThroughputElementsInRecord", reflect.TypeOf((*MockAggregationProcess)(nil).ResetStatAndThroughputElementsInRecord), record)
}

// SetCorrelatedFieldsFilled mocks base method.
func (m *MockAggregationProcess) SetCorrelatedFieldsFilled(record *intermediate.AggregationFlowRecord, isFilled bool) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "SetCorrelatedFieldsFilled", record, isFilled)
}

// SetCorrelatedFieldsFilled indicates an expected call of SetCorrelatedFieldsFilled.
func (mr *MockAggregationProcessMockRecorder) SetCorrelatedFieldsFilled(record, isFilled any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetCorrelatedFieldsFilled", reflect.TypeOf((*MockAggregationProcess)(nil).SetCorrelatedFieldsFilled), record, isFilled)
}

// SetExternalFieldsFilled mocks base method.
func (m *MockAggregationProcess) SetExternalFieldsFilled(record *intermediate.AggregationFlowRecord, isFilled bool) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "SetExternalFieldsFilled", record, isFilled)
}

// SetExternalFieldsFilled indicates an expected call of SetExternalFieldsFilled.
func (mr *MockAggregationProcessMockRecorder) SetExternalFieldsFilled(record, isFilled any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetExternalFieldsFilled", reflect.TypeOf((*MockAggregationProcess)(nil).SetExternalFieldsFilled), record, isFilled)
}

// Start mocks base method.
func (m *MockAggregationProcess) Start() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Start")
}

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

// Stop mocks base method.
func (m *MockAggregationProcess) Stop() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Stop")
}

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