// Code generated by mocker. DO NOT EDIT.
// github.com/travisjeffery/mocker
// Source: mds_client.go

package mock

import (
	sync "sync"

	github_com_confluentinc_mds_sdk_go_mdsv1 "github.com/confluentinc/mds-sdk-go/mdsv1"
)

// MockMDSClientManager is a mock of MDSClientManager interface
type MockMDSClientManager struct {
	lockGetMDSClient sync.Mutex
	GetMDSClientFunc func(url, caCertPath string) (*github_com_confluentinc_mds_sdk_go_mdsv1.APIClient, error)

	calls struct {
		GetMDSClient []struct {
			Url        string
			CaCertPath string
		}
	}
}

// GetMDSClient mocks base method by wrapping the associated func.
func (m *MockMDSClientManager) GetMDSClient(url, caCertPath string) (*github_com_confluentinc_mds_sdk_go_mdsv1.APIClient, error) {
	m.lockGetMDSClient.Lock()
	defer m.lockGetMDSClient.Unlock()

	if m.GetMDSClientFunc == nil {
		panic("mocker: MockMDSClientManager.GetMDSClientFunc is nil but MockMDSClientManager.GetMDSClient was called.")
	}

	call := struct {
		Url        string
		CaCertPath string
	}{
		Url:        url,
		CaCertPath: caCertPath,
	}

	m.calls.GetMDSClient = append(m.calls.GetMDSClient, call)

	return m.GetMDSClientFunc(url, caCertPath)
}

// GetMDSClientCalled returns true if GetMDSClient was called at least once.
func (m *MockMDSClientManager) GetMDSClientCalled() bool {
	m.lockGetMDSClient.Lock()
	defer m.lockGetMDSClient.Unlock()

	return len(m.calls.GetMDSClient) > 0
}

// GetMDSClientCalls returns the calls made to GetMDSClient.
func (m *MockMDSClientManager) GetMDSClientCalls() []struct {
	Url        string
	CaCertPath string
} {
	m.lockGetMDSClient.Lock()
	defer m.lockGetMDSClient.Unlock()

	return m.calls.GetMDSClient
}

// Reset resets the calls made to the mocked methods.
func (m *MockMDSClientManager) Reset() {
	m.lockGetMDSClient.Lock()
	m.calls.GetMDSClient = nil
	m.lockGetMDSClient.Unlock()
}
