// Code generated by mockery v2.45.0. DO NOT EDIT.

package mocks

import (
	time "time"

	resource "github.com/agoda-com/macOS-vz-kubelet/pkg/resource"
	mock "github.com/stretchr/testify/mock"

	v1 "k8s.io/api/core/v1"
)

// VirtualMachine is an autogenerated mock type for the VirtualMachine type
type VirtualMachine struct {
	mock.Mock
}

// Env provides a mock function with given fields:
func (_m *VirtualMachine) Env() []v1.EnvVar {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for Env")
	}

	var r0 []v1.EnvVar
	if rf, ok := ret.Get(0).(func() []v1.EnvVar); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]v1.EnvVar)
		}
	}

	return r0
}

// Error provides a mock function with given fields:
func (_m *VirtualMachine) Error() error {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for Error")
	}

	var r0 error
	if rf, ok := ret.Get(0).(func() error); ok {
		r0 = rf()
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// FinishedAt provides a mock function with given fields:
func (_m *VirtualMachine) FinishedAt() *time.Time {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for FinishedAt")
	}

	var r0 *time.Time
	if rf, ok := ret.Get(0).(func() *time.Time); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*time.Time)
		}
	}

	return r0
}

// IPAddress provides a mock function with given fields:
func (_m *VirtualMachine) IPAddress() string {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for IPAddress")
	}

	var r0 string
	if rf, ok := ret.Get(0).(func() string); ok {
		r0 = rf()
	} else {
		r0 = ret.Get(0).(string)
	}

	return r0
}

// SetError provides a mock function with given fields: err
func (_m *VirtualMachine) SetError(err error) {
	_m.Called(err)
}

// StartedAt provides a mock function with given fields:
func (_m *VirtualMachine) StartedAt() *time.Time {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for StartedAt")
	}

	var r0 *time.Time
	if rf, ok := ret.Get(0).(func() *time.Time); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*time.Time)
		}
	}

	return r0
}

// State provides a mock function with given fields:
func (_m *VirtualMachine) State() resource.VirtualMachineState {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for State")
	}

	var r0 resource.VirtualMachineState
	if rf, ok := ret.Get(0).(func() resource.VirtualMachineState); ok {
		r0 = rf()
	} else {
		r0 = ret.Get(0).(resource.VirtualMachineState)
	}

	return r0
}

// NewVirtualMachine creates a new instance of VirtualMachine. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
// The first argument is typically a *testing.T value.
func NewVirtualMachine(t interface {
	mock.TestingT
	Cleanup(func())
}) *VirtualMachine {
	mock := &VirtualMachine{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}
