// Copyright 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-vpc-resource-controller-k8s/pkg/provider/branch/trunk (interfaces: TrunkENI)

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

import (
	reflect "reflect"

	ec2 "github.com/aws/amazon-vpc-resource-controller-k8s/pkg/aws/ec2"
	trunk "github.com/aws/amazon-vpc-resource-controller-k8s/pkg/provider/branch/trunk"
	gomock "github.com/golang/mock/gomock"
	v1 "k8s.io/api/core/v1"
)

// MockTrunkENI is a mock of TrunkENI interface.
type MockTrunkENI struct {
	ctrl     *gomock.Controller
	recorder *MockTrunkENIMockRecorder
}

// MockTrunkENIMockRecorder is the mock recorder for MockTrunkENI.
type MockTrunkENIMockRecorder struct {
	mock *MockTrunkENI
}

// NewMockTrunkENI creates a new mock instance.
func NewMockTrunkENI(ctrl *gomock.Controller) *MockTrunkENI {
	mock := &MockTrunkENI{ctrl: ctrl}
	mock.recorder = &MockTrunkENIMockRecorder{mock}
	return mock
}

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

// CreateAndAssociateBranchENIs mocks base method.
func (m *MockTrunkENI) CreateAndAssociateBranchENIs(arg0 *v1.Pod, arg1 []string, arg2 int) ([]*trunk.ENIDetails, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateAndAssociateBranchENIs", arg0, arg1, arg2)
	ret0, _ := ret[0].([]*trunk.ENIDetails)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

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

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

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

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

// InitTrunk mocks base method.
func (m *MockTrunkENI) InitTrunk(arg0 ec2.EC2Instance, arg1 []v1.Pod) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "InitTrunk", arg0, arg1)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// Introspect mocks base method.
func (m *MockTrunkENI) Introspect() trunk.IntrospectResponse {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Introspect")
	ret0, _ := ret[0].(trunk.IntrospectResponse)
	return ret0
}

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

// PushBranchENIsToCoolDownQueue mocks base method.
func (m *MockTrunkENI) PushBranchENIsToCoolDownQueue(arg0 string) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "PushBranchENIsToCoolDownQueue", arg0)
}

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

// PushENIsToFrontOfDeleteQueue mocks base method.
func (m *MockTrunkENI) PushENIsToFrontOfDeleteQueue(arg0 *v1.Pod, arg1 []*trunk.ENIDetails) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "PushENIsToFrontOfDeleteQueue", arg0, arg1)
}

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

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

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