// 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-ecs-agent/agent/engine/execcmd (interfaces: Manager)

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

import (
	context "context"
	reflect "reflect"

	container "github.com/aws/amazon-ecs-agent/agent/api/container"
	task "github.com/aws/amazon-ecs-agent/agent/api/task"
	dockerapi "github.com/aws/amazon-ecs-agent/agent/dockerclient/dockerapi"
	execcmd "github.com/aws/amazon-ecs-agent/agent/engine/execcmd"
	container0 "github.com/docker/docker/api/types/container"
	gomock "github.com/golang/mock/gomock"
)

// MockManager is a mock of Manager interface.
type MockManager struct {
	ctrl     *gomock.Controller
	recorder *MockManagerMockRecorder
}

// MockManagerMockRecorder is the mock recorder for MockManager.
type MockManagerMockRecorder struct {
	mock *MockManager
}

// NewMockManager creates a new mock instance.
func NewMockManager(ctrl *gomock.Controller) *MockManager {
	mock := &MockManager{ctrl: ctrl}
	mock.recorder = &MockManagerMockRecorder{mock}
	return mock
}

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

// InitializeContainer mocks base method.
func (m *MockManager) InitializeContainer(arg0 *task.Task, arg1 *container.Container, arg2 *container0.HostConfig) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "InitializeContainer", arg0, arg1, arg2)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// RestartAgentIfStopped mocks base method.
func (m *MockManager) RestartAgentIfStopped(arg0 context.Context, arg1 dockerapi.DockerClient, arg2 *task.Task, arg3 *container.Container, arg4 string) (execcmd.RestartStatus, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RestartAgentIfStopped", arg0, arg1, arg2, arg3, arg4)
	ret0, _ := ret[0].(execcmd.RestartStatus)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// StartAgent mocks base method.
func (m *MockManager) StartAgent(arg0 context.Context, arg1 dockerapi.DockerClient, arg2 *task.Task, arg3 *container.Container, arg4 string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "StartAgent", arg0, arg1, arg2, arg3, arg4)
	ret0, _ := ret[0].(error)
	return ret0
}

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