/**
 * Copyright (c) F5, Inc.
 *
 * This source code is licensed under the Apache License, Version 2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */

// Code generated by MockGen. DO NOT EDIT.
// Source: aggregator.go

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

import (
	context "context"
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
	aggregator "github.com/nginx/agent/v2/src/extensions/advanced-metrics/aggregator"
	tables "github.com/nginx/agent/v2/src/extensions/advanced-metrics/tables"
	sample "github.com/nginx/agent/v2/src/extensions/advanced-metrics/tables/sample"
)

// MockReadTable is a mock of ReadTable interface.
type MockReadTable struct {
	ctrl     *gomock.Controller
	recorder *MockReadTableMockRecorder
}

// MockReadTableMockRecorder is the mock recorder for MockReadTable.
type MockReadTableMockRecorder struct {
	mock *MockReadTable
}

// NewMockReadTable creates a new mock instance.
func NewMockReadTable(ctrl *gomock.Controller) *MockReadTable {
	mock := &MockReadTable{ctrl: ctrl}
	mock.recorder = &MockReadTableMockRecorder{mock}
	return mock
}

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

// ReadSnapshot mocks base method.
func (m *MockReadTable) ReadSnapshot(resetLookups bool) (tables.SamplesView, tables.LookupSet) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ReadSnapshot", resetLookups)
	ret0, _ := ret[0].(tables.SamplesView)
	ret1, _ := ret[1].(tables.LookupSet)
	return ret0, ret1
}

// ReadSnapshot indicates an expected call of ReadSnapshot.
func (mr *MockReadTableMockRecorder) ReadSnapshot(resetLookups interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReadSnapshot", reflect.TypeOf((*MockReadTable)(nil).ReadSnapshot), resetLookups)
}

// MockPriorityTable is a mock of PriorityTable interface.
type MockPriorityTable struct {
	ctrl     *gomock.Controller
	recorder *MockPriorityTableMockRecorder
}

// MockPriorityTableMockRecorder is the mock recorder for MockPriorityTable.
type MockPriorityTableMockRecorder struct {
	mock *MockPriorityTable
}

// NewMockPriorityTable creates a new mock instance.
func NewMockPriorityTable(ctrl *gomock.Controller) *MockPriorityTable {
	mock := &MockPriorityTable{ctrl: ctrl}
	mock.recorder = &MockPriorityTableMockRecorder{mock}
	return mock
}

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

// Samples mocks base method.
func (m *MockPriorityTable) Samples() map[string]*sample.Sample {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Samples")
	ret0, _ := ret[0].(map[string]*sample.Sample)
	return ret0
}

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

// MockPublisher is a mock of Publisher interface.
type MockPublisher struct {
	ctrl     *gomock.Controller
	recorder *MockPublisherMockRecorder
}

// MockPublisherMockRecorder is the mock recorder for MockPublisher.
type MockPublisherMockRecorder struct {
	mock *MockPublisher
}

// NewMockPublisher creates a new mock instance.
func NewMockPublisher(ctrl *gomock.Controller) *MockPublisher {
	mock := &MockPublisher{ctrl: ctrl}
	mock.recorder = &MockPublisherMockRecorder{mock}
	return mock
}

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

// Publish mocks base method.
func (m *MockPublisher) Publish(arg0 context.Context, arg1 tables.LookupSet, arg2 aggregator.PriorityTable) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Publish", arg0, arg1, arg2)
	ret0, _ := ret[0].(error)
	return ret0
}

// Publish indicates an expected call of Publish.
func (mr *MockPublisherMockRecorder) Publish(arg0, arg1, arg2 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Publish", reflect.TypeOf((*MockPublisher)(nil).Publish), arg0, arg1, arg2)
}
