/*
  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: ConnectionProvider)

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

import (
	driver "database/sql/driver"
	reflect "reflect"

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

// MockConnectionProvider is a mock of ConnectionProvider interface.
type MockConnectionProvider struct {
	ctrl     *gomock.Controller
	recorder *MockConnectionProviderMockRecorder
}

// MockConnectionProviderMockRecorder is the mock recorder for MockConnectionProvider.
type MockConnectionProviderMockRecorder struct {
	mock *MockConnectionProvider
}

// NewMockConnectionProvider creates a new mock instance.
func NewMockConnectionProvider(ctrl *gomock.Controller) *MockConnectionProvider {
	mock := &MockConnectionProvider{ctrl: ctrl}
	mock.recorder = &MockConnectionProviderMockRecorder{mock}
	return mock
}

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

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

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

// AcceptsUrl mocks base method.
func (m *MockConnectionProvider) AcceptsUrl(arg0 host_info_util.HostInfo, arg1 map[string]string) bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AcceptsUrl", arg0, arg1)
	ret0, _ := ret[0].(bool)
	return ret0
}

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

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

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

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

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

// GetHostSelectorStrategy mocks base method.
func (m *MockConnectionProvider) GetHostSelectorStrategy(arg0 string) (driver_infrastructure.HostSelector, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetHostSelectorStrategy", arg0)
	ret0, _ := ret[0].(driver_infrastructure.HostSelector)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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