/*
  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.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License 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/aws-advanced-go-wrapper/awssql/driver_infrastructure (interfaces: HostSelector,WeightedHostSelector)

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

import (
	reflect "reflect"

	host_info_util "github.com/aws/aws-advanced-go-wrapper/awssql/host_info_util"
	gomock "github.com/golang/mock/gomock"
)

// MockHostSelector is a mock of HostSelector interface.
type MockHostSelector struct {
	ctrl     *gomock.Controller
	recorder *MockHostSelectorMockRecorder
}

// MockHostSelectorMockRecorder is the mock recorder for MockHostSelector.
type MockHostSelectorMockRecorder struct {
	mock *MockHostSelector
}

// NewMockHostSelector creates a new mock instance.
func NewMockHostSelector(ctrl *gomock.Controller) *MockHostSelector {
	mock := &MockHostSelector{ctrl: ctrl}
	mock.recorder = &MockHostSelectorMockRecorder{mock}
	return mock
}

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

// GetHost mocks base method.
func (m *MockHostSelector) GetHost(arg0 []*host_info_util.HostInfo, arg1 host_info_util.HostRole, arg2 map[string]string) (*host_info_util.HostInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetHost", arg0, arg1, arg2)
	ret0, _ := ret[0].(*host_info_util.HostInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// MockWeightedHostSelector is a mock of WeightedHostSelector interface.
type MockWeightedHostSelector struct {
	ctrl     *gomock.Controller
	recorder *MockWeightedHostSelectorMockRecorder
}

// MockWeightedHostSelectorMockRecorder is the mock recorder for MockWeightedHostSelector.
type MockWeightedHostSelectorMockRecorder struct {
	mock *MockWeightedHostSelector
}

// NewMockWeightedHostSelector creates a new mock instance.
func NewMockWeightedHostSelector(ctrl *gomock.Controller) *MockWeightedHostSelector {
	mock := &MockWeightedHostSelector{ctrl: ctrl}
	mock.recorder = &MockWeightedHostSelectorMockRecorder{mock}
	return mock
}

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

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

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

// GetHost mocks base method.
func (m *MockWeightedHostSelector) GetHost(arg0 []*host_info_util.HostInfo, arg1 host_info_util.HostRole, arg2 map[string]string) (*host_info_util.HostInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetHost", arg0, arg1, arg2)
	ret0, _ := ret[0].(*host_info_util.HostInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// SetHostWeights mocks base method.
func (m *MockWeightedHostSelector) SetHostWeights(arg0 map[string]int) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "SetHostWeights", arg0)
}

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