// Code generated by moq; DO NOT EDIT.
// github.com/matryer/moq

package fake

import (
	"sync"

	"sigs.k8s.io/controller-runtime/pkg/manager"
)

// MockWebhookManager is a mock implementation of manager.Provider.
//
//	func TestSomethingThatUsesProvider(t *testing.T) {
//
//		// make and configure a mocked manager.Provider
//		mockedProvider := &MockWebhookManager{
//			SetupWebhookServerFunc: func(mgr manager.Manager)  {
//				panic("mock out the SetupWebhookServer method")
//			},
//		}
//
//		// use mockedProvider in code that requires manager.Provider
//		// and then make assertions.
//
//	}
type MockWebhookManager struct {
	// SetupWebhookServerFunc mocks the SetupWebhookServer method.
	SetupWebhookServerFunc func(mgr manager.Manager)

	// calls tracks calls to the methods.
	calls struct {
		// SetupWebhookServer holds details about calls to the SetupWebhookServer method.
		SetupWebhookServer []struct {
			// Mgr is the mgr argument value.
			Mgr manager.Manager
		}
	}
	lockSetupWebhookServer sync.RWMutex
}

// SetupWebhookServer calls SetupWebhookServerFunc.
func (mock *MockWebhookManager) SetupWebhookServer(mgr manager.Manager) {
	if mock.SetupWebhookServerFunc == nil {
		panic("MockWebhookManager.SetupWebhookServerFunc: method is nil but Provider.SetupWebhookServer was just called")
	}
	callInfo := struct {
		Mgr manager.Manager
	}{
		Mgr: mgr,
	}
	mock.lockSetupWebhookServer.Lock()
	mock.calls.SetupWebhookServer = append(mock.calls.SetupWebhookServer, callInfo)
	mock.lockSetupWebhookServer.Unlock()
	mock.SetupWebhookServerFunc(mgr)
}

// SetupWebhookServerCalls gets all the calls that were made to SetupWebhookServer.
// Check the length with:
//
//	len(mockedProvider.SetupWebhookServerCalls())
func (mock *MockWebhookManager) SetupWebhookServerCalls() []struct {
	Mgr manager.Manager
} {
	var calls []struct {
		Mgr manager.Manager
	}
	mock.lockSetupWebhookServer.RLock()
	calls = mock.calls.SetupWebhookServer
	mock.lockSetupWebhookServer.RUnlock()
	return calls
}
