// 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/ip/eni (interfaces: ENIManager)

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

import (
	reflect "reflect"

	api "github.com/aws/amazon-vpc-resource-controller-k8s/pkg/aws/ec2/api"
	config "github.com/aws/amazon-vpc-resource-controller-k8s/pkg/config"
	eni "github.com/aws/amazon-vpc-resource-controller-k8s/pkg/provider/ip/eni"
	logr "github.com/go-logr/logr"
	gomock "github.com/golang/mock/gomock"
)

// MockENIManager is a mock of ENIManager interface.
type MockENIManager struct {
	ctrl     *gomock.Controller
	recorder *MockENIManagerMockRecorder
}

// MockENIManagerMockRecorder is the mock recorder for MockENIManager.
type MockENIManagerMockRecorder struct {
	mock *MockENIManager
}

// NewMockENIManager creates a new mock instance.
func NewMockENIManager(ctrl *gomock.Controller) *MockENIManager {
	mock := &MockENIManager{ctrl: ctrl}
	mock.recorder = &MockENIManagerMockRecorder{mock}
	return mock
}

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

// CreateIPV4Resource mocks base method.
func (m *MockENIManager) CreateIPV4Resource(arg0 int, arg1 config.ResourceType, arg2 api.EC2APIHelper, arg3 logr.Logger) ([]string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateIPV4Resource", arg0, arg1, arg2, arg3)
	ret0, _ := ret[0].([]string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// DeleteIPV4Resource mocks base method.
func (m *MockENIManager) DeleteIPV4Resource(arg0 []string, arg1 config.ResourceType, arg2 api.EC2APIHelper, arg3 logr.Logger) ([]string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteIPV4Resource", arg0, arg1, arg2, arg3)
	ret0, _ := ret[0].([]string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// InitResources mocks base method.
func (m *MockENIManager) InitResources(arg0 api.EC2APIHelper) (*eni.IPv4Resource, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "InitResources", arg0)
	ret0, _ := ret[0].(*eni.IPv4Resource)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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