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

package mock

import (
	sync "sync"

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

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

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

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

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

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

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

	return m.GetMDSClientFunc(url, caCertPath, unsafeTrace)
}

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

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

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

	return m.calls.GetMDSClient
}

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