// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License"). You may
// not use this file except in compliance with the License. A copy of the
// License is located at
//
//     http://aws.amazon.com/apache2.0/
//
// or in the "license" file accompanying this file. This file 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: github.com/aws/amazon-ecs-cni-plugins/plugins/ecs-bridge/engine (interfaces: Engine)

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

import (
	reflect "reflect"

	current "github.com/containernetworking/cni/pkg/types/current"
	gomock "github.com/golang/mock/gomock"
	netlink "github.com/vishvananda/netlink"
)

// MockEngine is a mock of Engine interface.
type MockEngine struct {
	ctrl     *gomock.Controller
	recorder *MockEngineMockRecorder
}

// MockEngineMockRecorder is the mock recorder for MockEngine.
type MockEngineMockRecorder struct {
	mock *MockEngine
}

// NewMockEngine creates a new mock instance.
func NewMockEngine(ctrl *gomock.Controller) *MockEngine {
	mock := &MockEngine{ctrl: ctrl}
	mock.recorder = &MockEngineMockRecorder{mock}
	return mock
}

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

// AttachHostVethInterfaceToBridge mocks base method.
func (m *MockEngine) AttachHostVethInterfaceToBridge(arg0 string, arg1 *netlink.Bridge) (*current.Interface, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AttachHostVethInterfaceToBridge", arg0, arg1)
	ret0, _ := ret[0].(*current.Interface)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// ConfigureBridge mocks base method.
func (m *MockEngine) ConfigureBridge(arg0 *current.Result, arg1 *netlink.Bridge) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ConfigureBridge", arg0, arg1)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// ConfigureContainerVethInterface mocks base method.
func (m *MockEngine) ConfigureContainerVethInterface(arg0 string, arg1 *current.Result, arg2 string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ConfigureContainerVethInterface", arg0, arg1, arg2)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// CreateBridge mocks base method.
func (m *MockEngine) CreateBridge(arg0 string, arg1 int) (*netlink.Bridge, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateBridge", arg0, arg1)
	ret0, _ := ret[0].(*netlink.Bridge)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// CreateVethPair mocks base method.
func (m *MockEngine) CreateVethPair(arg0 string, arg1 int, arg2 string) (*current.Interface, string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateVethPair", arg0, arg1, arg2)
	ret0, _ := ret[0].(*current.Interface)
	ret1, _ := ret[1].(string)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

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

// DeleteVeth mocks base method.
func (m *MockEngine) DeleteVeth(arg0, arg1 string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteVeth", arg0, arg1)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// GetInterfaceIPV4Address mocks base method.
func (m *MockEngine) GetInterfaceIPV4Address(arg0, arg1 string) (string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetInterfaceIPV4Address", arg0, arg1)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// RunIPAMPluginAdd mocks base method.
func (m *MockEngine) RunIPAMPluginAdd(arg0 string, arg1 []byte) (*current.Result, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RunIPAMPluginAdd", arg0, arg1)
	ret0, _ := ret[0].(*current.Result)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// RunIPAMPluginDel mocks base method.
func (m *MockEngine) RunIPAMPluginDel(arg0 string, arg1 []byte) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RunIPAMPluginDel", arg0, arg1)
	ret0, _ := ret[0].(error)
	return ret0
}

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