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

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

import (
	context "context"
	reflect "reflect"

	message "github.com/sahil3vedi/chainsafe-core/relayer/message"
	gomock "github.com/golang/mock/gomock"
)

// MockMetrics is a mock of Metrics interface.
type MockMetrics struct {
	ctrl     *gomock.Controller
	recorder *MockMetricsMockRecorder
}

// MockMetricsMockRecorder is the mock recorder for MockMetrics.
type MockMetricsMockRecorder struct {
	mock *MockMetrics
}

// NewMockMetrics creates a new mock instance.
func NewMockMetrics(ctrl *gomock.Controller) *MockMetrics {
	mock := &MockMetrics{ctrl: ctrl}
	mock.recorder = &MockMetricsMockRecorder{mock}
	return mock
}

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

// TrackDepositMessage mocks base method.
func (m_2 *MockMetrics) TrackDepositMessage(m *message.Message) {
	m_2.ctrl.T.Helper()
	m_2.ctrl.Call(m_2, "TrackDepositMessage", m)
}

// TrackDepositMessage indicates an expected call of TrackDepositMessage.
func (mr *MockMetricsMockRecorder) TrackDepositMessage(m interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TrackDepositMessage", reflect.TypeOf((*MockMetrics)(nil).TrackDepositMessage), m)
}

// MockRelayedChain is a mock of RelayedChain interface.
type MockRelayedChain struct {
	ctrl     *gomock.Controller
	recorder *MockRelayedChainMockRecorder
}

// MockRelayedChainMockRecorder is the mock recorder for MockRelayedChain.
type MockRelayedChainMockRecorder struct {
	mock *MockRelayedChain
}

// NewMockRelayedChain creates a new mock instance.
func NewMockRelayedChain(ctrl *gomock.Controller) *MockRelayedChain {
	mock := &MockRelayedChain{ctrl: ctrl}
	mock.recorder = &MockRelayedChainMockRecorder{mock}
	return mock
}

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

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

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

// PollEvents mocks base method.
func (m *MockRelayedChain) PollEvents(ctx context.Context, sysErr chan<- error, msgChan chan *message.Message) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "PollEvents", ctx, sysErr, msgChan)
}

// PollEvents indicates an expected call of PollEvents.
func (mr *MockRelayedChainMockRecorder) PollEvents(ctx, sysErr, msgChan interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PollEvents", reflect.TypeOf((*MockRelayedChain)(nil).PollEvents), ctx, sysErr, msgChan)
}

// Write mocks base method.
func (m *MockRelayedChain) Write(message *message.Message) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Write", message)
	ret0, _ := ret[0].(error)
	return ret0
}

// Write indicates an expected call of Write.
func (mr *MockRelayedChainMockRecorder) Write(message interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Write", reflect.TypeOf((*MockRelayedChain)(nil).Write), message)
}
