// 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.

// Automatically generated by MockGen. DO NOT EDIT!
// Source: github.com/aws/amazon-ecs-agent/agent/statemanager/dependencies (interfaces: WindowsRegistry,RegistryKey)

package mock_dependencies

import (
	dependencies "github.com/aws/amazon-ecs-agent/agent/statemanager/dependencies"
	gomock "github.com/golang/mock/gomock"
	registry "golang.org/x/sys/windows/registry"
)

// Mock of WindowsRegistry interface
type MockWindowsRegistry struct {
	ctrl     *gomock.Controller
	recorder *_MockWindowsRegistryRecorder
}

// Recorder for MockWindowsRegistry (not exported)
type _MockWindowsRegistryRecorder struct {
	mock *MockWindowsRegistry
}

func NewMockWindowsRegistry(ctrl *gomock.Controller) *MockWindowsRegistry {
	mock := &MockWindowsRegistry{ctrl: ctrl}
	mock.recorder = &_MockWindowsRegistryRecorder{mock}
	return mock
}

func (_m *MockWindowsRegistry) EXPECT() *_MockWindowsRegistryRecorder {
	return _m.recorder
}

func (_m *MockWindowsRegistry) CreateKey(_param0 registry.Key, _param1 string, _param2 uint32) (dependencies.RegistryKey, bool, error) {
	ret := _m.ctrl.Call(_m, "CreateKey", _param0, _param1, _param2)
	ret0, _ := ret[0].(dependencies.RegistryKey)
	ret1, _ := ret[1].(bool)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

func (_mr *_MockWindowsRegistryRecorder) CreateKey(arg0, arg1, arg2 interface{}) *gomock.Call {
	return _mr.mock.ctrl.RecordCall(_mr.mock, "CreateKey", arg0, arg1, arg2)
}

func (_m *MockWindowsRegistry) OpenKey(_param0 registry.Key, _param1 string, _param2 uint32) (dependencies.RegistryKey, error) {
	ret := _m.ctrl.Call(_m, "OpenKey", _param0, _param1, _param2)
	ret0, _ := ret[0].(dependencies.RegistryKey)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

func (_mr *_MockWindowsRegistryRecorder) OpenKey(arg0, arg1, arg2 interface{}) *gomock.Call {
	return _mr.mock.ctrl.RecordCall(_mr.mock, "OpenKey", arg0, arg1, arg2)
}

// Mock of RegistryKey interface
type MockRegistryKey struct {
	ctrl     *gomock.Controller
	recorder *_MockRegistryKeyRecorder
}

// Recorder for MockRegistryKey (not exported)
type _MockRegistryKeyRecorder struct {
	mock *MockRegistryKey
}

func NewMockRegistryKey(ctrl *gomock.Controller) *MockRegistryKey {
	mock := &MockRegistryKey{ctrl: ctrl}
	mock.recorder = &_MockRegistryKeyRecorder{mock}
	return mock
}

func (_m *MockRegistryKey) EXPECT() *_MockRegistryKeyRecorder {
	return _m.recorder
}

func (_m *MockRegistryKey) Close() error {
	ret := _m.ctrl.Call(_m, "Close")
	ret0, _ := ret[0].(error)
	return ret0
}

func (_mr *_MockRegistryKeyRecorder) Close() *gomock.Call {
	return _mr.mock.ctrl.RecordCall(_mr.mock, "Close")
}

func (_m *MockRegistryKey) GetStringValue(_param0 string) (string, uint32, error) {
	ret := _m.ctrl.Call(_m, "GetStringValue", _param0)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(uint32)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

func (_mr *_MockRegistryKeyRecorder) GetStringValue(arg0 interface{}) *gomock.Call {
	return _mr.mock.ctrl.RecordCall(_mr.mock, "GetStringValue", arg0)
}

func (_m *MockRegistryKey) SetStringValue(_param0 string, _param1 string) error {
	ret := _m.ctrl.Call(_m, "SetStringValue", _param0, _param1)
	ret0, _ := ret[0].(error)
	return ret0
}

func (_mr *_MockRegistryKeyRecorder) SetStringValue(arg0, arg1 interface{}) *gomock.Call {
	return _mr.mock.ctrl.RecordCall(_mr.mock, "SetStringValue", arg0, arg1)
}
