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

package fake

import (
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"sync"
	"time"
)

// MockConfig is a mock implementation of config.IConfig.
//
//	func TestSomethingThatUsesIConfig(t *testing.T) {
//
//		// make and configure a mocked config.IConfig
//		mockedIConfig := &MockConfig{
//			GetBlockDeploymentFunc: func() bool {
//				panic("mock out the GetBlockDeployment method")
//			},
//			GetCloudEventsEndpointFunc: func() string {
//				panic("mock out the GetCloudEventsEndpoint method")
//			},
//			GetCreationRequestTimeoutFunc: func() time.Duration {
//				panic("mock out the GetCreationRequestTimeout method")
//			},
//			GetDefaultNamespaceFunc: func() string {
//				panic("mock out the GetDefaultNamespace method")
//			},
//			GetObservabilityTimeoutFunc: func() metav1.Duration {
//				panic("mock out the GetObservabilityTimeout method")
//			},
//			SetBlockDeploymentFunc: func(value bool)  {
//				panic("mock out the SetBlockDeployment method")
//			},
//			SetCloudEventsEndpointFunc: func(endpoint string)  {
//				panic("mock out the SetCloudEventsEndpoint method")
//			},
//			SetCreationRequestTimeoutFunc: func(value time.Duration)  {
//				panic("mock out the SetCreationRequestTimeout method")
//			},
//			SetDefaultNamespaceFunc: func(namespace string)  {
//				panic("mock out the SetDefaultNamespace method")
//			},
//			SetObservabilityTimeoutFunc: func(timeout metav1.Duration)  {
//				panic("mock out the SetObservabilityTimeout method")
//			},
//		}
//
//		// use mockedIConfig in code that requires config.IConfig
//		// and then make assertions.
//
//	}
type MockConfig struct {
	// GetBlockDeploymentFunc mocks the GetBlockDeployment method.
	GetBlockDeploymentFunc func() bool

	// GetCloudEventsEndpointFunc mocks the GetCloudEventsEndpoint method.
	GetCloudEventsEndpointFunc func() string

	// GetCreationRequestTimeoutFunc mocks the GetCreationRequestTimeout method.
	GetCreationRequestTimeoutFunc func() time.Duration

	// GetDefaultNamespaceFunc mocks the GetDefaultNamespace method.
	GetDefaultNamespaceFunc func() string

	// GetObservabilityTimeoutFunc mocks the GetObservabilityTimeout method.
	GetObservabilityTimeoutFunc func() metav1.Duration

	// SetBlockDeploymentFunc mocks the SetBlockDeployment method.
	SetBlockDeploymentFunc func(value bool)

	// SetCloudEventsEndpointFunc mocks the SetCloudEventsEndpoint method.
	SetCloudEventsEndpointFunc func(endpoint string)

	// SetRestApiEnabledFunc mocks the the SetRestApiEnabled method.
	SetRestApiEnabledFunc func(value bool)

	// GetRestApiFunc mocks the GetRestApiEnabled method.
	GetRestApiEnabledFunc func() bool

	// SetCreationRequestTimeoutFunc mocks the SetCreationRequestTimeout method.
	SetCreationRequestTimeoutFunc func(value time.Duration)

	// SetDefaultNamespaceFunc mocks the SetDefaultNamespace method.
	SetDefaultNamespaceFunc func(namespace string)

	// SetObservabilityTimeoutFunc mocks the SetObservabilityTimeout method.
	SetObservabilityTimeoutFunc func(timeout metav1.Duration)

	// calls tracks calls to the methods.
	calls struct {
		// GetBlockDeployment holds details about calls to the GetBlockDeployment method.
		GetBlockDeployment []struct {
		}
		// GetCloudEventsEndpoint holds details about calls to the GetCloudEventsEndpoint method.
		GetCloudEventsEndpoint []struct {
		}
		// GetCreationRequestTimeout holds details about calls to the GetCreationRequestTimeout method.
		GetCreationRequestTimeout []struct {
		}
		// GetDefaultNamespace holds details about calls to the GetDefaultNamespace method.
		GetDefaultNamespace []struct {
		}
		// GetObservabilityTimeout holds details about calls to the GetObservabilityTimeout method.
		GetObservabilityTimeout []struct {
		}
		// SetBlockDeployment holds details about calls to the SetBlockDeployment method.
		SetBlockDeployment []struct {
			// Value is the value argument value.
			Value bool
		}
		// SetCloudEventsEndpoint holds details about calls to the SetCloudEventsEndpoint method.
		SetCloudEventsEndpoint []struct {
			// Endpoint is the endpoint argument value.
			Endpoint string
		}
		// SetCreationRequestTimeout holds details about calls to the SetCreationRequestTimeout method.
		SetCreationRequestTimeout []struct {
			// Value is the value argument value.
			Value time.Duration
		}
		// SetDefaultNamespace holds details about calls to the SetDefaultNamespace method.
		SetDefaultNamespace []struct {
			// Namespace is the namespace argument value.
			Namespace string
		}
		// SetObservabilityTimeout holds details about calls to the SetObservabilityTimeout method.
		SetObservabilityTimeout []struct {
			// Timeout is the timeout argument value.
			Timeout metav1.Duration
		}
	}
	lockGetBlockDeployment        sync.RWMutex
	lockGetCloudEventsEndpoint    sync.RWMutex
	lockGetCreationRequestTimeout sync.RWMutex
	lockGetDefaultNamespace       sync.RWMutex
	lockGetObservabilityTimeout   sync.RWMutex
	lockSetBlockDeployment        sync.RWMutex
	lockSetCloudEventsEndpoint    sync.RWMutex
	lockSetCreationRequestTimeout sync.RWMutex
	lockSetDefaultNamespace       sync.RWMutex
	lockSetObservabilityTimeout   sync.RWMutex
}

// GetRestApi calls GetRestApiFunc.
func (mock *MockConfig) GetRestApiEnabled() bool {
	return mock.GetRestApiEnabledFunc()
}

// GetRestApi calls GetRestApiFunc.
func (mock *MockConfig) SetRestApiEnabled(value bool) {
	mock.SetRestApiEnabledFunc(value)
}

// GetBlockDeployment calls GetBlockDeploymentFunc.
func (mock *MockConfig) GetBlockDeployment() bool {
	if mock.GetBlockDeploymentFunc == nil {
		panic("MockConfig.GetBlockDeploymentFunc: method is nil but IConfig.GetBlockDeployment was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetBlockDeployment.Lock()
	mock.calls.GetBlockDeployment = append(mock.calls.GetBlockDeployment, callInfo)
	mock.lockGetBlockDeployment.Unlock()
	return mock.GetBlockDeploymentFunc()
}

// GetBlockDeploymentCalls gets all the calls that were made to GetBlockDeployment.
// Check the length with:
//
//	len(mockedIConfig.GetBlockDeploymentCalls())
func (mock *MockConfig) GetBlockDeploymentCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetBlockDeployment.RLock()
	calls = mock.calls.GetBlockDeployment
	mock.lockGetBlockDeployment.RUnlock()
	return calls
}

// GetCloudEventsEndpoint calls GetCloudEventsEndpointFunc.
func (mock *MockConfig) GetCloudEventsEndpoint() string {
	if mock.GetCloudEventsEndpointFunc == nil {
		panic("MockConfig.GetCloudEventsEndpointFunc: method is nil but IConfig.GetCloudEventsEndpoint was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetCloudEventsEndpoint.Lock()
	mock.calls.GetCloudEventsEndpoint = append(mock.calls.GetCloudEventsEndpoint, callInfo)
	mock.lockGetCloudEventsEndpoint.Unlock()
	return mock.GetCloudEventsEndpointFunc()
}

// GetCloudEventsEndpointCalls gets all the calls that were made to GetCloudEventsEndpoint.
// Check the length with:
//
//	len(mockedIConfig.GetCloudEventsEndpointCalls())
func (mock *MockConfig) GetCloudEventsEndpointCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetCloudEventsEndpoint.RLock()
	calls = mock.calls.GetCloudEventsEndpoint
	mock.lockGetCloudEventsEndpoint.RUnlock()
	return calls
}

// GetCreationRequestTimeout calls GetCreationRequestTimeoutFunc.
func (mock *MockConfig) GetCreationRequestTimeout() time.Duration {
	if mock.GetCreationRequestTimeoutFunc == nil {
		panic("MockConfig.GetCreationRequestTimeoutFunc: method is nil but IConfig.GetCreationRequestTimeout was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetCreationRequestTimeout.Lock()
	mock.calls.GetCreationRequestTimeout = append(mock.calls.GetCreationRequestTimeout, callInfo)
	mock.lockGetCreationRequestTimeout.Unlock()
	return mock.GetCreationRequestTimeoutFunc()
}

// GetCreationRequestTimeoutCalls gets all the calls that were made to GetCreationRequestTimeout.
// Check the length with:
//
//	len(mockedIConfig.GetCreationRequestTimeoutCalls())
func (mock *MockConfig) GetCreationRequestTimeoutCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetCreationRequestTimeout.RLock()
	calls = mock.calls.GetCreationRequestTimeout
	mock.lockGetCreationRequestTimeout.RUnlock()
	return calls
}

// GetDefaultNamespace calls GetDefaultNamespaceFunc.
func (mock *MockConfig) GetDefaultNamespace() string {
	if mock.GetDefaultNamespaceFunc == nil {
		panic("MockConfig.GetDefaultNamespaceFunc: method is nil but IConfig.GetDefaultNamespace was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetDefaultNamespace.Lock()
	mock.calls.GetDefaultNamespace = append(mock.calls.GetDefaultNamespace, callInfo)
	mock.lockGetDefaultNamespace.Unlock()
	return mock.GetDefaultNamespaceFunc()
}

// GetDefaultNamespaceCalls gets all the calls that were made to GetDefaultNamespace.
// Check the length with:
//
//	len(mockedIConfig.GetDefaultNamespaceCalls())
func (mock *MockConfig) GetDefaultNamespaceCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetDefaultNamespace.RLock()
	calls = mock.calls.GetDefaultNamespace
	mock.lockGetDefaultNamespace.RUnlock()
	return calls
}

// GetObservabilityTimeout calls GetObservabilityTimeoutFunc.
func (mock *MockConfig) GetObservabilityTimeout() metav1.Duration {
	if mock.GetObservabilityTimeoutFunc == nil {
		panic("MockConfig.GetObservabilityTimeoutFunc: method is nil but IConfig.GetObservabilityTimeout was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetObservabilityTimeout.Lock()
	mock.calls.GetObservabilityTimeout = append(mock.calls.GetObservabilityTimeout, callInfo)
	mock.lockGetObservabilityTimeout.Unlock()
	return mock.GetObservabilityTimeoutFunc()
}

// GetObservabilityTimeoutCalls gets all the calls that were made to GetObservabilityTimeout.
// Check the length with:
//
//	len(mockedIConfig.GetObservabilityTimeoutCalls())
func (mock *MockConfig) GetObservabilityTimeoutCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetObservabilityTimeout.RLock()
	calls = mock.calls.GetObservabilityTimeout
	mock.lockGetObservabilityTimeout.RUnlock()
	return calls
}

// SetBlockDeployment calls SetBlockDeploymentFunc.
func (mock *MockConfig) SetBlockDeployment(value bool) {
	if mock.SetBlockDeploymentFunc == nil {
		panic("MockConfig.SetBlockDeploymentFunc: method is nil but IConfig.SetBlockDeployment was just called")
	}
	callInfo := struct {
		Value bool
	}{
		Value: value,
	}
	mock.lockSetBlockDeployment.Lock()
	mock.calls.SetBlockDeployment = append(mock.calls.SetBlockDeployment, callInfo)
	mock.lockSetBlockDeployment.Unlock()
	mock.SetBlockDeploymentFunc(value)
}

// SetBlockDeploymentCalls gets all the calls that were made to SetBlockDeployment.
// Check the length with:
//
//	len(mockedIConfig.SetBlockDeploymentCalls())
func (mock *MockConfig) SetBlockDeploymentCalls() []struct {
	Value bool
} {
	var calls []struct {
		Value bool
	}
	mock.lockSetBlockDeployment.RLock()
	calls = mock.calls.SetBlockDeployment
	mock.lockSetBlockDeployment.RUnlock()
	return calls
}

// SetCloudEventsEndpoint calls SetCloudEventsEndpointFunc.
func (mock *MockConfig) SetCloudEventsEndpoint(endpoint string) {
	if mock.SetCloudEventsEndpointFunc == nil {
		panic("MockConfig.SetCloudEventsEndpointFunc: method is nil but IConfig.SetCloudEventsEndpoint was just called")
	}
	callInfo := struct {
		Endpoint string
	}{
		Endpoint: endpoint,
	}
	mock.lockSetCloudEventsEndpoint.Lock()
	mock.calls.SetCloudEventsEndpoint = append(mock.calls.SetCloudEventsEndpoint, callInfo)
	mock.lockSetCloudEventsEndpoint.Unlock()
	mock.SetCloudEventsEndpointFunc(endpoint)
}

// SetCloudEventsEndpointCalls gets all the calls that were made to SetCloudEventsEndpoint.
// Check the length with:
//
//	len(mockedIConfig.SetCloudEventsEndpointCalls())
func (mock *MockConfig) SetCloudEventsEndpointCalls() []struct {
	Endpoint string
} {
	var calls []struct {
		Endpoint string
	}
	mock.lockSetCloudEventsEndpoint.RLock()
	calls = mock.calls.SetCloudEventsEndpoint
	mock.lockSetCloudEventsEndpoint.RUnlock()
	return calls
}

// SetCreationRequestTimeout calls SetCreationRequestTimeoutFunc.
func (mock *MockConfig) SetCreationRequestTimeout(value time.Duration) {
	if mock.SetCreationRequestTimeoutFunc == nil {
		panic("MockConfig.SetCreationRequestTimeoutFunc: method is nil but IConfig.SetCreationRequestTimeout was just called")
	}
	callInfo := struct {
		Value time.Duration
	}{
		Value: value,
	}
	mock.lockSetCreationRequestTimeout.Lock()
	mock.calls.SetCreationRequestTimeout = append(mock.calls.SetCreationRequestTimeout, callInfo)
	mock.lockSetCreationRequestTimeout.Unlock()
	mock.SetCreationRequestTimeoutFunc(value)
}

// SetCreationRequestTimeoutCalls gets all the calls that were made to SetCreationRequestTimeout.
// Check the length with:
//
//	len(mockedIConfig.SetCreationRequestTimeoutCalls())
func (mock *MockConfig) SetCreationRequestTimeoutCalls() []struct {
	Value time.Duration
} {
	var calls []struct {
		Value time.Duration
	}
	mock.lockSetCreationRequestTimeout.RLock()
	calls = mock.calls.SetCreationRequestTimeout
	mock.lockSetCreationRequestTimeout.RUnlock()
	return calls
}

// SetDefaultNamespace calls SetDefaultNamespaceFunc.
func (mock *MockConfig) SetDefaultNamespace(namespace string) {
	if mock.SetDefaultNamespaceFunc == nil {
		panic("MockConfig.SetDefaultNamespaceFunc: method is nil but IConfig.SetDefaultNamespace was just called")
	}
	callInfo := struct {
		Namespace string
	}{
		Namespace: namespace,
	}
	mock.lockSetDefaultNamespace.Lock()
	mock.calls.SetDefaultNamespace = append(mock.calls.SetDefaultNamespace, callInfo)
	mock.lockSetDefaultNamespace.Unlock()
	mock.SetDefaultNamespaceFunc(namespace)
}

// SetDefaultNamespaceCalls gets all the calls that were made to SetDefaultNamespace.
// Check the length with:
//
//	len(mockedIConfig.SetDefaultNamespaceCalls())
func (mock *MockConfig) SetDefaultNamespaceCalls() []struct {
	Namespace string
} {
	var calls []struct {
		Namespace string
	}
	mock.lockSetDefaultNamespace.RLock()
	calls = mock.calls.SetDefaultNamespace
	mock.lockSetDefaultNamespace.RUnlock()
	return calls
}

// SetObservabilityTimeout calls SetObservabilityTimeoutFunc.
func (mock *MockConfig) SetObservabilityTimeout(timeout metav1.Duration) {
	if mock.SetObservabilityTimeoutFunc == nil {
		panic("MockConfig.SetObservabilityTimeoutFunc: method is nil but IConfig.SetObservabilityTimeout was just called")
	}
	callInfo := struct {
		Timeout metav1.Duration
	}{
		Timeout: timeout,
	}
	mock.lockSetObservabilityTimeout.Lock()
	mock.calls.SetObservabilityTimeout = append(mock.calls.SetObservabilityTimeout, callInfo)
	mock.lockSetObservabilityTimeout.Unlock()
	mock.SetObservabilityTimeoutFunc(timeout)
}

// SetObservabilityTimeoutCalls gets all the calls that were made to SetObservabilityTimeout.
// Check the length with:
//
//	len(mockedIConfig.SetObservabilityTimeoutCalls())
func (mock *MockConfig) SetObservabilityTimeoutCalls() []struct {
	Timeout metav1.Duration
} {
	var calls []struct {
		Timeout metav1.Duration
	}
	mock.lockSetObservabilityTimeout.RLock()
	calls = mock.calls.SetObservabilityTimeout
	mock.lockSetObservabilityTimeout.RUnlock()
	return calls
}
