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

package mock

import (
	"github.com/NVIDIA/go-nvml/pkg/nvml"
	"sync"
)

// Ensure, that VgpuTypeId does implement nvml.VgpuTypeId.
// If this is not the case, regenerate this file with moq.
var _ nvml.VgpuTypeId = &VgpuTypeId{}

// VgpuTypeId is a mock implementation of nvml.VgpuTypeId.
//
//	func TestSomethingThatUsesVgpuTypeId(t *testing.T) {
//
//		// make and configure a mocked nvml.VgpuTypeId
//		mockedVgpuTypeId := &VgpuTypeId{
//			GetCapabilitiesFunc: func(vgpuCapability nvml.VgpuCapability) (bool, nvml.Return) {
//				panic("mock out the GetCapabilities method")
//			},
//			GetClassFunc: func() (string, nvml.Return) {
//				panic("mock out the GetClass method")
//			},
//			GetCreatablePlacementsFunc: func(device nvml.Device) (nvml.VgpuPlacementList, nvml.Return) {
//				panic("mock out the GetCreatablePlacements method")
//			},
//			GetDeviceIDFunc: func() (uint64, uint64, nvml.Return) {
//				panic("mock out the GetDeviceID method")
//			},
//			GetFrameRateLimitFunc: func() (uint32, nvml.Return) {
//				panic("mock out the GetFrameRateLimit method")
//			},
//			GetFramebufferSizeFunc: func() (uint64, nvml.Return) {
//				panic("mock out the GetFramebufferSize method")
//			},
//			GetGpuInstanceProfileIdFunc: func() (uint32, nvml.Return) {
//				panic("mock out the GetGpuInstanceProfileId method")
//			},
//			GetLicenseFunc: func() (string, nvml.Return) {
//				panic("mock out the GetLicense method")
//			},
//			GetMaxInstancesFunc: func(device nvml.Device) (int, nvml.Return) {
//				panic("mock out the GetMaxInstances method")
//			},
//			GetMaxInstancesPerVmFunc: func() (int, nvml.Return) {
//				panic("mock out the GetMaxInstancesPerVm method")
//			},
//			GetNameFunc: func() (string, nvml.Return) {
//				panic("mock out the GetName method")
//			},
//			GetNumDisplayHeadsFunc: func() (int, nvml.Return) {
//				panic("mock out the GetNumDisplayHeads method")
//			},
//			GetResolutionFunc: func(n int) (uint32, uint32, nvml.Return) {
//				panic("mock out the GetResolution method")
//			},
//			GetSupportedPlacementsFunc: func(device nvml.Device) (nvml.VgpuPlacementList, nvml.Return) {
//				panic("mock out the GetSupportedPlacements method")
//			},
//		}
//
//		// use mockedVgpuTypeId in code that requires nvml.VgpuTypeId
//		// and then make assertions.
//
//	}
type VgpuTypeId struct {
	// GetCapabilitiesFunc mocks the GetCapabilities method.
	GetCapabilitiesFunc func(vgpuCapability nvml.VgpuCapability) (bool, nvml.Return)

	// GetClassFunc mocks the GetClass method.
	GetClassFunc func() (string, nvml.Return)

	// GetCreatablePlacementsFunc mocks the GetCreatablePlacements method.
	GetCreatablePlacementsFunc func(device nvml.Device) (nvml.VgpuPlacementList, nvml.Return)

	// GetDeviceIDFunc mocks the GetDeviceID method.
	GetDeviceIDFunc func() (uint64, uint64, nvml.Return)

	// GetFrameRateLimitFunc mocks the GetFrameRateLimit method.
	GetFrameRateLimitFunc func() (uint32, nvml.Return)

	// GetFramebufferSizeFunc mocks the GetFramebufferSize method.
	GetFramebufferSizeFunc func() (uint64, nvml.Return)

	// GetGpuInstanceProfileIdFunc mocks the GetGpuInstanceProfileId method.
	GetGpuInstanceProfileIdFunc func() (uint32, nvml.Return)

	// GetLicenseFunc mocks the GetLicense method.
	GetLicenseFunc func() (string, nvml.Return)

	// GetMaxInstancesFunc mocks the GetMaxInstances method.
	GetMaxInstancesFunc func(device nvml.Device) (int, nvml.Return)

	// GetMaxInstancesPerVmFunc mocks the GetMaxInstancesPerVm method.
	GetMaxInstancesPerVmFunc func() (int, nvml.Return)

	// GetNameFunc mocks the GetName method.
	GetNameFunc func() (string, nvml.Return)

	// GetNumDisplayHeadsFunc mocks the GetNumDisplayHeads method.
	GetNumDisplayHeadsFunc func() (int, nvml.Return)

	// GetResolutionFunc mocks the GetResolution method.
	GetResolutionFunc func(n int) (uint32, uint32, nvml.Return)

	// GetSupportedPlacementsFunc mocks the GetSupportedPlacements method.
	GetSupportedPlacementsFunc func(device nvml.Device) (nvml.VgpuPlacementList, nvml.Return)

	// calls tracks calls to the methods.
	calls struct {
		// GetCapabilities holds details about calls to the GetCapabilities method.
		GetCapabilities []struct {
			// VgpuCapability is the vgpuCapability argument value.
			VgpuCapability nvml.VgpuCapability
		}
		// GetClass holds details about calls to the GetClass method.
		GetClass []struct {
		}
		// GetCreatablePlacements holds details about calls to the GetCreatablePlacements method.
		GetCreatablePlacements []struct {
			// Device is the device argument value.
			Device nvml.Device
		}
		// GetDeviceID holds details about calls to the GetDeviceID method.
		GetDeviceID []struct {
		}
		// GetFrameRateLimit holds details about calls to the GetFrameRateLimit method.
		GetFrameRateLimit []struct {
		}
		// GetFramebufferSize holds details about calls to the GetFramebufferSize method.
		GetFramebufferSize []struct {
		}
		// GetGpuInstanceProfileId holds details about calls to the GetGpuInstanceProfileId method.
		GetGpuInstanceProfileId []struct {
		}
		// GetLicense holds details about calls to the GetLicense method.
		GetLicense []struct {
		}
		// GetMaxInstances holds details about calls to the GetMaxInstances method.
		GetMaxInstances []struct {
			// Device is the device argument value.
			Device nvml.Device
		}
		// GetMaxInstancesPerVm holds details about calls to the GetMaxInstancesPerVm method.
		GetMaxInstancesPerVm []struct {
		}
		// GetName holds details about calls to the GetName method.
		GetName []struct {
		}
		// GetNumDisplayHeads holds details about calls to the GetNumDisplayHeads method.
		GetNumDisplayHeads []struct {
		}
		// GetResolution holds details about calls to the GetResolution method.
		GetResolution []struct {
			// N is the n argument value.
			N int
		}
		// GetSupportedPlacements holds details about calls to the GetSupportedPlacements method.
		GetSupportedPlacements []struct {
			// Device is the device argument value.
			Device nvml.Device
		}
	}
	lockGetCapabilities         sync.RWMutex
	lockGetClass                sync.RWMutex
	lockGetCreatablePlacements  sync.RWMutex
	lockGetDeviceID             sync.RWMutex
	lockGetFrameRateLimit       sync.RWMutex
	lockGetFramebufferSize      sync.RWMutex
	lockGetGpuInstanceProfileId sync.RWMutex
	lockGetLicense              sync.RWMutex
	lockGetMaxInstances         sync.RWMutex
	lockGetMaxInstancesPerVm    sync.RWMutex
	lockGetName                 sync.RWMutex
	lockGetNumDisplayHeads      sync.RWMutex
	lockGetResolution           sync.RWMutex
	lockGetSupportedPlacements  sync.RWMutex
}

// GetCapabilities calls GetCapabilitiesFunc.
func (mock *VgpuTypeId) GetCapabilities(vgpuCapability nvml.VgpuCapability) (bool, nvml.Return) {
	if mock.GetCapabilitiesFunc == nil {
		panic("VgpuTypeId.GetCapabilitiesFunc: method is nil but VgpuTypeId.GetCapabilities was just called")
	}
	callInfo := struct {
		VgpuCapability nvml.VgpuCapability
	}{
		VgpuCapability: vgpuCapability,
	}
	mock.lockGetCapabilities.Lock()
	mock.calls.GetCapabilities = append(mock.calls.GetCapabilities, callInfo)
	mock.lockGetCapabilities.Unlock()
	return mock.GetCapabilitiesFunc(vgpuCapability)
}

// GetCapabilitiesCalls gets all the calls that were made to GetCapabilities.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetCapabilitiesCalls())
func (mock *VgpuTypeId) GetCapabilitiesCalls() []struct {
	VgpuCapability nvml.VgpuCapability
} {
	var calls []struct {
		VgpuCapability nvml.VgpuCapability
	}
	mock.lockGetCapabilities.RLock()
	calls = mock.calls.GetCapabilities
	mock.lockGetCapabilities.RUnlock()
	return calls
}

// GetClass calls GetClassFunc.
func (mock *VgpuTypeId) GetClass() (string, nvml.Return) {
	if mock.GetClassFunc == nil {
		panic("VgpuTypeId.GetClassFunc: method is nil but VgpuTypeId.GetClass was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetClass.Lock()
	mock.calls.GetClass = append(mock.calls.GetClass, callInfo)
	mock.lockGetClass.Unlock()
	return mock.GetClassFunc()
}

// GetClassCalls gets all the calls that were made to GetClass.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetClassCalls())
func (mock *VgpuTypeId) GetClassCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetClass.RLock()
	calls = mock.calls.GetClass
	mock.lockGetClass.RUnlock()
	return calls
}

// GetCreatablePlacements calls GetCreatablePlacementsFunc.
func (mock *VgpuTypeId) GetCreatablePlacements(device nvml.Device) (nvml.VgpuPlacementList, nvml.Return) {
	if mock.GetCreatablePlacementsFunc == nil {
		panic("VgpuTypeId.GetCreatablePlacementsFunc: method is nil but VgpuTypeId.GetCreatablePlacements was just called")
	}
	callInfo := struct {
		Device nvml.Device
	}{
		Device: device,
	}
	mock.lockGetCreatablePlacements.Lock()
	mock.calls.GetCreatablePlacements = append(mock.calls.GetCreatablePlacements, callInfo)
	mock.lockGetCreatablePlacements.Unlock()
	return mock.GetCreatablePlacementsFunc(device)
}

// GetCreatablePlacementsCalls gets all the calls that were made to GetCreatablePlacements.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetCreatablePlacementsCalls())
func (mock *VgpuTypeId) GetCreatablePlacementsCalls() []struct {
	Device nvml.Device
} {
	var calls []struct {
		Device nvml.Device
	}
	mock.lockGetCreatablePlacements.RLock()
	calls = mock.calls.GetCreatablePlacements
	mock.lockGetCreatablePlacements.RUnlock()
	return calls
}

// GetDeviceID calls GetDeviceIDFunc.
func (mock *VgpuTypeId) GetDeviceID() (uint64, uint64, nvml.Return) {
	if mock.GetDeviceIDFunc == nil {
		panic("VgpuTypeId.GetDeviceIDFunc: method is nil but VgpuTypeId.GetDeviceID was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetDeviceID.Lock()
	mock.calls.GetDeviceID = append(mock.calls.GetDeviceID, callInfo)
	mock.lockGetDeviceID.Unlock()
	return mock.GetDeviceIDFunc()
}

// GetDeviceIDCalls gets all the calls that were made to GetDeviceID.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetDeviceIDCalls())
func (mock *VgpuTypeId) GetDeviceIDCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetDeviceID.RLock()
	calls = mock.calls.GetDeviceID
	mock.lockGetDeviceID.RUnlock()
	return calls
}

// GetFrameRateLimit calls GetFrameRateLimitFunc.
func (mock *VgpuTypeId) GetFrameRateLimit() (uint32, nvml.Return) {
	if mock.GetFrameRateLimitFunc == nil {
		panic("VgpuTypeId.GetFrameRateLimitFunc: method is nil but VgpuTypeId.GetFrameRateLimit was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetFrameRateLimit.Lock()
	mock.calls.GetFrameRateLimit = append(mock.calls.GetFrameRateLimit, callInfo)
	mock.lockGetFrameRateLimit.Unlock()
	return mock.GetFrameRateLimitFunc()
}

// GetFrameRateLimitCalls gets all the calls that were made to GetFrameRateLimit.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetFrameRateLimitCalls())
func (mock *VgpuTypeId) GetFrameRateLimitCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetFrameRateLimit.RLock()
	calls = mock.calls.GetFrameRateLimit
	mock.lockGetFrameRateLimit.RUnlock()
	return calls
}

// GetFramebufferSize calls GetFramebufferSizeFunc.
func (mock *VgpuTypeId) GetFramebufferSize() (uint64, nvml.Return) {
	if mock.GetFramebufferSizeFunc == nil {
		panic("VgpuTypeId.GetFramebufferSizeFunc: method is nil but VgpuTypeId.GetFramebufferSize was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetFramebufferSize.Lock()
	mock.calls.GetFramebufferSize = append(mock.calls.GetFramebufferSize, callInfo)
	mock.lockGetFramebufferSize.Unlock()
	return mock.GetFramebufferSizeFunc()
}

// GetFramebufferSizeCalls gets all the calls that were made to GetFramebufferSize.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetFramebufferSizeCalls())
func (mock *VgpuTypeId) GetFramebufferSizeCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetFramebufferSize.RLock()
	calls = mock.calls.GetFramebufferSize
	mock.lockGetFramebufferSize.RUnlock()
	return calls
}

// GetGpuInstanceProfileId calls GetGpuInstanceProfileIdFunc.
func (mock *VgpuTypeId) GetGpuInstanceProfileId() (uint32, nvml.Return) {
	if mock.GetGpuInstanceProfileIdFunc == nil {
		panic("VgpuTypeId.GetGpuInstanceProfileIdFunc: method is nil but VgpuTypeId.GetGpuInstanceProfileId was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetGpuInstanceProfileId.Lock()
	mock.calls.GetGpuInstanceProfileId = append(mock.calls.GetGpuInstanceProfileId, callInfo)
	mock.lockGetGpuInstanceProfileId.Unlock()
	return mock.GetGpuInstanceProfileIdFunc()
}

// GetGpuInstanceProfileIdCalls gets all the calls that were made to GetGpuInstanceProfileId.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetGpuInstanceProfileIdCalls())
func (mock *VgpuTypeId) GetGpuInstanceProfileIdCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetGpuInstanceProfileId.RLock()
	calls = mock.calls.GetGpuInstanceProfileId
	mock.lockGetGpuInstanceProfileId.RUnlock()
	return calls
}

// GetLicense calls GetLicenseFunc.
func (mock *VgpuTypeId) GetLicense() (string, nvml.Return) {
	if mock.GetLicenseFunc == nil {
		panic("VgpuTypeId.GetLicenseFunc: method is nil but VgpuTypeId.GetLicense was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetLicense.Lock()
	mock.calls.GetLicense = append(mock.calls.GetLicense, callInfo)
	mock.lockGetLicense.Unlock()
	return mock.GetLicenseFunc()
}

// GetLicenseCalls gets all the calls that were made to GetLicense.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetLicenseCalls())
func (mock *VgpuTypeId) GetLicenseCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetLicense.RLock()
	calls = mock.calls.GetLicense
	mock.lockGetLicense.RUnlock()
	return calls
}

// GetMaxInstances calls GetMaxInstancesFunc.
func (mock *VgpuTypeId) GetMaxInstances(device nvml.Device) (int, nvml.Return) {
	if mock.GetMaxInstancesFunc == nil {
		panic("VgpuTypeId.GetMaxInstancesFunc: method is nil but VgpuTypeId.GetMaxInstances was just called")
	}
	callInfo := struct {
		Device nvml.Device
	}{
		Device: device,
	}
	mock.lockGetMaxInstances.Lock()
	mock.calls.GetMaxInstances = append(mock.calls.GetMaxInstances, callInfo)
	mock.lockGetMaxInstances.Unlock()
	return mock.GetMaxInstancesFunc(device)
}

// GetMaxInstancesCalls gets all the calls that were made to GetMaxInstances.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetMaxInstancesCalls())
func (mock *VgpuTypeId) GetMaxInstancesCalls() []struct {
	Device nvml.Device
} {
	var calls []struct {
		Device nvml.Device
	}
	mock.lockGetMaxInstances.RLock()
	calls = mock.calls.GetMaxInstances
	mock.lockGetMaxInstances.RUnlock()
	return calls
}

// GetMaxInstancesPerVm calls GetMaxInstancesPerVmFunc.
func (mock *VgpuTypeId) GetMaxInstancesPerVm() (int, nvml.Return) {
	if mock.GetMaxInstancesPerVmFunc == nil {
		panic("VgpuTypeId.GetMaxInstancesPerVmFunc: method is nil but VgpuTypeId.GetMaxInstancesPerVm was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetMaxInstancesPerVm.Lock()
	mock.calls.GetMaxInstancesPerVm = append(mock.calls.GetMaxInstancesPerVm, callInfo)
	mock.lockGetMaxInstancesPerVm.Unlock()
	return mock.GetMaxInstancesPerVmFunc()
}

// GetMaxInstancesPerVmCalls gets all the calls that were made to GetMaxInstancesPerVm.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetMaxInstancesPerVmCalls())
func (mock *VgpuTypeId) GetMaxInstancesPerVmCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetMaxInstancesPerVm.RLock()
	calls = mock.calls.GetMaxInstancesPerVm
	mock.lockGetMaxInstancesPerVm.RUnlock()
	return calls
}

// GetName calls GetNameFunc.
func (mock *VgpuTypeId) GetName() (string, nvml.Return) {
	if mock.GetNameFunc == nil {
		panic("VgpuTypeId.GetNameFunc: method is nil but VgpuTypeId.GetName was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetName.Lock()
	mock.calls.GetName = append(mock.calls.GetName, callInfo)
	mock.lockGetName.Unlock()
	return mock.GetNameFunc()
}

// GetNameCalls gets all the calls that were made to GetName.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetNameCalls())
func (mock *VgpuTypeId) GetNameCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetName.RLock()
	calls = mock.calls.GetName
	mock.lockGetName.RUnlock()
	return calls
}

// GetNumDisplayHeads calls GetNumDisplayHeadsFunc.
func (mock *VgpuTypeId) GetNumDisplayHeads() (int, nvml.Return) {
	if mock.GetNumDisplayHeadsFunc == nil {
		panic("VgpuTypeId.GetNumDisplayHeadsFunc: method is nil but VgpuTypeId.GetNumDisplayHeads was just called")
	}
	callInfo := struct {
	}{}
	mock.lockGetNumDisplayHeads.Lock()
	mock.calls.GetNumDisplayHeads = append(mock.calls.GetNumDisplayHeads, callInfo)
	mock.lockGetNumDisplayHeads.Unlock()
	return mock.GetNumDisplayHeadsFunc()
}

// GetNumDisplayHeadsCalls gets all the calls that were made to GetNumDisplayHeads.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetNumDisplayHeadsCalls())
func (mock *VgpuTypeId) GetNumDisplayHeadsCalls() []struct {
} {
	var calls []struct {
	}
	mock.lockGetNumDisplayHeads.RLock()
	calls = mock.calls.GetNumDisplayHeads
	mock.lockGetNumDisplayHeads.RUnlock()
	return calls
}

// GetResolution calls GetResolutionFunc.
func (mock *VgpuTypeId) GetResolution(n int) (uint32, uint32, nvml.Return) {
	if mock.GetResolutionFunc == nil {
		panic("VgpuTypeId.GetResolutionFunc: method is nil but VgpuTypeId.GetResolution was just called")
	}
	callInfo := struct {
		N int
	}{
		N: n,
	}
	mock.lockGetResolution.Lock()
	mock.calls.GetResolution = append(mock.calls.GetResolution, callInfo)
	mock.lockGetResolution.Unlock()
	return mock.GetResolutionFunc(n)
}

// GetResolutionCalls gets all the calls that were made to GetResolution.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetResolutionCalls())
func (mock *VgpuTypeId) GetResolutionCalls() []struct {
	N int
} {
	var calls []struct {
		N int
	}
	mock.lockGetResolution.RLock()
	calls = mock.calls.GetResolution
	mock.lockGetResolution.RUnlock()
	return calls
}

// GetSupportedPlacements calls GetSupportedPlacementsFunc.
func (mock *VgpuTypeId) GetSupportedPlacements(device nvml.Device) (nvml.VgpuPlacementList, nvml.Return) {
	if mock.GetSupportedPlacementsFunc == nil {
		panic("VgpuTypeId.GetSupportedPlacementsFunc: method is nil but VgpuTypeId.GetSupportedPlacements was just called")
	}
	callInfo := struct {
		Device nvml.Device
	}{
		Device: device,
	}
	mock.lockGetSupportedPlacements.Lock()
	mock.calls.GetSupportedPlacements = append(mock.calls.GetSupportedPlacements, callInfo)
	mock.lockGetSupportedPlacements.Unlock()
	return mock.GetSupportedPlacementsFunc(device)
}

// GetSupportedPlacementsCalls gets all the calls that were made to GetSupportedPlacements.
// Check the length with:
//
//	len(mockedVgpuTypeId.GetSupportedPlacementsCalls())
func (mock *VgpuTypeId) GetSupportedPlacementsCalls() []struct {
	Device nvml.Device
} {
	var calls []struct {
		Device nvml.Device
	}
	mock.lockGetSupportedPlacements.RLock()
	calls = mock.calls.GetSupportedPlacements
	mock.lockGetSupportedPlacements.RUnlock()
	return calls
}
