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

package fake

import (
	"sync"
	"time"

	"go.opentelemetry.io/otel/attribute"
)

// MetricsObjectMock is a mock implementation of common.MetricsObject.
//
//	func TestSomethingThatUsesMetricsObject(t *testing.T) {
//
//		// make and configure a mocked common.MetricsObject
//		mockedMetricsObject := &MetricsObjectMock{
//			GetDurationMetricsAttributesFunc: func() []attribute.KeyValue {
//				panic("mock out the GetDurationMetricsAttributes method")
//			},
//			GetEndTimeFunc: func() time.Time {
//				panic("mock out the GetEndTime method")
//			},
//			GetMetricsAttributesFunc: func() []attribute.KeyValue {
//				panic("mock out the GetMetricsAttributes method")
//			},
//			GetNamespaceFunc: func() string {
//				panic("mock out the GetNamespace method")
//			},
//			GetParentNameFunc: func() string {
//				panic("mock out the GetParentName method")
//			},
//			GetPreviousVersionFunc: func() string {
//				panic("mock out the GetPreviousVersion method")
//			},
//			GetStartTimeFunc: func() time.Time {
//				panic("mock out the GetStartTime method")
//			},
//			IsEndTimeSetFunc: func() bool {
//				panic("mock out the IsEndTimeSet method")
//			},
//		}
//
//		// use mockedMetricsObject in code that requires common.MetricsObject
//		// and then make assertions.
//
//	}
type MetricsObjectMock struct {
	// GetDurationMetricsAttributesFunc mocks the GetDurationMetricsAttributes method.
	GetDurationMetricsAttributesFunc func() []attribute.KeyValue

	// GetEndTimeFunc mocks the GetEndTime method.
	GetEndTimeFunc func() time.Time

	// GetMetricsAttributesFunc mocks the GetMetricsAttributes method.
	GetMetricsAttributesFunc func() []attribute.KeyValue

	// GetNamespaceFunc mocks the GetNamespace method.
	GetNamespaceFunc func() string

	// GetParentNameFunc mocks the GetParentName method.
	GetParentNameFunc func() string

	// GetPreviousVersionFunc mocks the GetPreviousVersion method.
	GetPreviousVersionFunc func() string

	// GetStartTimeFunc mocks the GetStartTime method.
	GetStartTimeFunc func() time.Time

	// IsEndTimeSetFunc mocks the IsEndTimeSet method.
	IsEndTimeSetFunc func() bool

	// calls tracks calls to the methods.
	calls struct {
		// GetDurationMetricsAttributes holds details about calls to the GetDurationMetricsAttributes method.
		GetDurationMetricsAttributes []struct {
		}
		// GetEndTime holds details about calls to the GetEndTime method.
		GetEndTime []struct {
		}
		// GetMetricsAttributes holds details about calls to the GetMetricsAttributes method.
		GetMetricsAttributes []struct {
		}
		// GetNamespace holds details about calls to the GetNamespace method.
		GetNamespace []struct {
		}
		// GetParentName holds details about calls to the GetParentName method.
		GetParentName []struct {
		}
		// GetPreviousVersion holds details about calls to the GetPreviousVersion method.
		GetPreviousVersion []struct {
		}
		// GetStartTime holds details about calls to the GetStartTime method.
		GetStartTime []struct {
		}
		// IsEndTimeSet holds details about calls to the IsEndTimeSet method.
		IsEndTimeSet []struct {
		}
	}
	lockGetDurationMetricsAttributes sync.RWMutex
	lockGetEndTime                   sync.RWMutex
	lockGetMetricsAttributes         sync.RWMutex
	lockGetNamespace                 sync.RWMutex
	lockGetParentName                sync.RWMutex
	lockGetPreviousVersion           sync.RWMutex
	lockGetStartTime                 sync.RWMutex
	lockIsEndTimeSet                 sync.RWMutex
}

// GetDurationMetricsAttributes calls GetDurationMetricsAttributesFunc.
func (mock *MetricsObjectMock) GetDurationMetricsAttributes() []attribute.KeyValue {
	if mock.GetDurationMetricsAttributesFunc == nil {
		panic("MetricsObjectMock.GetDurationMetricsAttributesFunc: method is nil but MetricsObject.GetDurationMetricsAttributes was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetDurationMetricsAttributes.Lock()
	mock.calls.GetDurationMetricsAttributes = append(mock.calls.GetDurationMetricsAttributes, callInfo)
	mock.lockGetDurationMetricsAttributes.Unlock()
	return mock.GetDurationMetricsAttributesFunc()
}

// GetDurationMetricsAttributesCalls gets all the calls that were made to GetDurationMetricsAttributes.
// Check the length with:
//
//	len(mockedMetricsObject.GetDurationMetricsAttributesCalls())
func (mock *MetricsObjectMock) GetDurationMetricsAttributesCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetDurationMetricsAttributes.RLock()
	calls = mock.calls.GetDurationMetricsAttributes
	mock.lockGetDurationMetricsAttributes.RUnlock()
	return calls
}

// GetEndTime calls GetEndTimeFunc.
func (mock *MetricsObjectMock) GetEndTime() time.Time {
	if mock.GetEndTimeFunc == nil {
		panic("MetricsObjectMock.GetEndTimeFunc: method is nil but MetricsObject.GetEndTime was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetEndTime.Lock()
	mock.calls.GetEndTime = append(mock.calls.GetEndTime, callInfo)
	mock.lockGetEndTime.Unlock()
	return mock.GetEndTimeFunc()
}

// GetEndTimeCalls gets all the calls that were made to GetEndTime.
// Check the length with:
//
//	len(mockedMetricsObject.GetEndTimeCalls())
func (mock *MetricsObjectMock) GetEndTimeCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetEndTime.RLock()
	calls = mock.calls.GetEndTime
	mock.lockGetEndTime.RUnlock()
	return calls
}

// GetMetricsAttributes calls GetMetricsAttributesFunc.
func (mock *MetricsObjectMock) GetMetricsAttributes() []attribute.KeyValue {
	if mock.GetMetricsAttributesFunc == nil {
		panic("MetricsObjectMock.GetMetricsAttributesFunc: method is nil but MetricsObject.GetMetricsAttributes was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetMetricsAttributes.Lock()
	mock.calls.GetMetricsAttributes = append(mock.calls.GetMetricsAttributes, callInfo)
	mock.lockGetMetricsAttributes.Unlock()
	return mock.GetMetricsAttributesFunc()
}

// GetMetricsAttributesCalls gets all the calls that were made to GetMetricsAttributes.
// Check the length with:
//
//	len(mockedMetricsObject.GetMetricsAttributesCalls())
func (mock *MetricsObjectMock) GetMetricsAttributesCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetMetricsAttributes.RLock()
	calls = mock.calls.GetMetricsAttributes
	mock.lockGetMetricsAttributes.RUnlock()
	return calls
}

// GetNamespace calls GetNamespaceFunc.
func (mock *MetricsObjectMock) GetNamespace() string {
	if mock.GetNamespaceFunc == nil {
		panic("MetricsObjectMock.GetNamespaceFunc: method is nil but MetricsObject.GetNamespace was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetNamespace.Lock()
	mock.calls.GetNamespace = append(mock.calls.GetNamespace, callInfo)
	mock.lockGetNamespace.Unlock()
	return mock.GetNamespaceFunc()
}

// GetNamespaceCalls gets all the calls that were made to GetNamespace.
// Check the length with:
//
//	len(mockedMetricsObject.GetNamespaceCalls())
func (mock *MetricsObjectMock) GetNamespaceCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetNamespace.RLock()
	calls = mock.calls.GetNamespace
	mock.lockGetNamespace.RUnlock()
	return calls
}

// GetParentName calls GetParentNameFunc.
func (mock *MetricsObjectMock) GetParentName() string {
	if mock.GetParentNameFunc == nil {
		panic("MetricsObjectMock.GetParentNameFunc: method is nil but MetricsObject.GetParentName was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetParentName.Lock()
	mock.calls.GetParentName = append(mock.calls.GetParentName, callInfo)
	mock.lockGetParentName.Unlock()
	return mock.GetParentNameFunc()
}

// GetParentNameCalls gets all the calls that were made to GetParentName.
// Check the length with:
//
//	len(mockedMetricsObject.GetParentNameCalls())
func (mock *MetricsObjectMock) GetParentNameCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetParentName.RLock()
	calls = mock.calls.GetParentName
	mock.lockGetParentName.RUnlock()
	return calls
}

// GetPreviousVersion calls GetPreviousVersionFunc.
func (mock *MetricsObjectMock) GetPreviousVersion() string {
	if mock.GetPreviousVersionFunc == nil {
		panic("MetricsObjectMock.GetPreviousVersionFunc: method is nil but MetricsObject.GetPreviousVersion was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetPreviousVersion.Lock()
	mock.calls.GetPreviousVersion = append(mock.calls.GetPreviousVersion, callInfo)
	mock.lockGetPreviousVersion.Unlock()
	return mock.GetPreviousVersionFunc()
}

// GetPreviousVersionCalls gets all the calls that were made to GetPreviousVersion.
// Check the length with:
//
//	len(mockedMetricsObject.GetPreviousVersionCalls())
func (mock *MetricsObjectMock) GetPreviousVersionCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetPreviousVersion.RLock()
	calls = mock.calls.GetPreviousVersion
	mock.lockGetPreviousVersion.RUnlock()
	return calls
}

// GetStartTime calls GetStartTimeFunc.
func (mock *MetricsObjectMock) GetStartTime() time.Time {
	if mock.GetStartTimeFunc == nil {
		panic("MetricsObjectMock.GetStartTimeFunc: method is nil but MetricsObject.GetStartTime was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetStartTime.Lock()
	mock.calls.GetStartTime = append(mock.calls.GetStartTime, callInfo)
	mock.lockGetStartTime.Unlock()
	return mock.GetStartTimeFunc()
}

// GetStartTimeCalls gets all the calls that were made to GetStartTime.
// Check the length with:
//
//	len(mockedMetricsObject.GetStartTimeCalls())
func (mock *MetricsObjectMock) GetStartTimeCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetStartTime.RLock()
	calls = mock.calls.GetStartTime
	mock.lockGetStartTime.RUnlock()
	return calls
}

// IsEndTimeSet calls IsEndTimeSetFunc.
func (mock *MetricsObjectMock) IsEndTimeSet() bool {
	if mock.IsEndTimeSetFunc == nil {
		panic("MetricsObjectMock.IsEndTimeSetFunc: method is nil but MetricsObject.IsEndTimeSet was just called")
	}
	callInfo := struct {
	}{}
	mock.lockIsEndTimeSet.Lock()
	mock.calls.IsEndTimeSet = append(mock.calls.IsEndTimeSet, callInfo)
	mock.lockIsEndTimeSet.Unlock()
	return mock.IsEndTimeSetFunc()
}

// IsEndTimeSetCalls gets all the calls that were made to IsEndTimeSet.
// Check the length with:
//
//	len(mockedMetricsObject.IsEndTimeSetCalls())
func (mock *MetricsObjectMock) IsEndTimeSetCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockIsEndTimeSet.RLock()
	calls = mock.calls.IsEndTimeSet
	mock.lockIsEndTimeSet.RUnlock()
	return calls
}
