package mocks // Package mocks 模拟测试包 import ( "git.huangwc.com/pig/pig-farm-controller/internal/model" "github.com/stretchr/testify/mock" ) // MockDeviceRepo 模拟设备仓库,实现DeviceRepo接口 type MockDeviceRepo struct { mock.Mock } // Create 模拟创建设备方法 func (m *MockDeviceRepo) Create(device *model.Device) error { args := m.Called(device) return args.Error(0) } // FindByID 模拟根据ID查找设备方法 func (m *MockDeviceRepo) FindByID(id uint) (*model.Device, error) { args := m.Called(id) // 返回第一个参数作为设备,第二个参数作为错误 device, ok := args.Get(0).(*model.Device) if !ok { return nil, args.Error(1) } return device, args.Error(1) } // FindByIDString 模拟根据ID字符串查找设备方法 func (m *MockDeviceRepo) FindByIDString(id string) (*model.Device, error) { args := m.Called(id) // 返回第一个参数作为设备,第二个参数作为错误 device, ok := args.Get(0).(*model.Device) if !ok { return nil, args.Error(1) } return device, args.Error(1) } // FindByParentID 模拟根据上级设备ID查找设备方法 func (m *MockDeviceRepo) FindByParentID(parentID uint) ([]*model.Device, error) { args := m.Called(parentID) // 返回第一个参数作为设备列表,第二个参数作为错误 devices, ok := args.Get(0).([]*model.Device) if !ok { return nil, args.Error(1) } return devices, args.Error(1) } // FindByType 模拟根据设备类型查找设备方法 func (m *MockDeviceRepo) FindByType(deviceType model.DeviceType) ([]*model.Device, error) { args := m.Called(deviceType) // 返回第一个参数作为设备列表,第二个参数作为错误 devices, ok := args.Get(0).([]*model.Device) if !ok { return nil, args.Error(1) } return devices, args.Error(1) } // Update 模拟更新设备信息方法 func (m *MockDeviceRepo) Update(device *model.Device) error { args := m.Called(device) return args.Error(0) } // Delete 模拟删除设备方法 func (m *MockDeviceRepo) Delete(id uint) error { args := m.Called(id) return args.Error(0) } // ListAll 模拟获取所有设备列表方法 func (m *MockDeviceRepo) ListAll() ([]model.Device, error) { args := m.Called() // 返回第一个参数作为设备列表,第二个参数作为错误 devices, ok := args.Get(0).([]model.Device) if !ok { return nil, args.Error(1) } return devices, args.Error(1) } // FindRelayDevices 模拟获取所有中继设备方法 func (m *MockDeviceRepo) FindRelayDevices() ([]*model.Device, error) { args := m.Called() // 返回第一个参数作为设备列表,第二个参数作为错误 devices, ok := args.Get(0).([]*model.Device) if !ok { return nil, args.Error(1) } return devices, args.Error(1) } // FindByDeviceID 模拟根据设备ID查找设备方法(额外方法) func (m *MockDeviceRepo) FindByDeviceID(deviceID string) (*model.Device, error) { args := m.Called(deviceID) // 返回第一个参数作为设备,第二个参数作为错误 device, ok := args.Get(0).(*model.Device) if !ok { return nil, args.Error(1) } return device, args.Error(1) } // FindControllers 模拟查找控制器方法(额外方法) func (m *MockDeviceRepo) FindControllers() ([]*model.Device, error) { args := m.Called() // 返回第一个参数作为设备列表,第二个参数作为错误 devices, ok := args.Get(0).([]*model.Device) if !ok { return nil, args.Error(1) } return devices, args.Error(1) } // FindRelays 模拟查找中继设备方法(额外方法) func (m *MockDeviceRepo) FindRelays() ([]*model.Device, error) { args := m.Called() // 返回第一个参数作为设备列表,第二个参数作为错误 devices, ok := args.Get(0).([]*model.Device) if !ok { return nil, args.Error(1) } return devices, args.Error(1) } // FindDevicesByType 模拟根据类型查找设备方法(额外方法) func (m *MockDeviceRepo) FindDevicesByType(deviceType string) ([]*model.Device, error) { args := m.Called(deviceType) // 返回第一个参数作为设备列表,第二个参数作为错误 devices, ok := args.Get(0).([]*model.Device) if !ok { return nil, args.Error(1) } return devices, args.Error(1) } // FindRelayDevices 模拟根据中继ID查找设备方法(额外方法) func (m *MockDeviceRepo) FindRelayDevicesByID(relayID uint) ([]*model.Device, error) { args := m.Called(relayID) // 返回第一个参数作为设备列表,第二个参数作为错误 devices, ok := args.Get(0).([]*model.Device) if !ok { return nil, args.Error(1) } return devices, args.Error(1) } // UpdateDeviceStatus 模拟更新设备状态方法(额外方法) func (m *MockDeviceRepo) UpdateDeviceStatus(id uint, active bool) error { args := m.Called(id, active) return args.Error(0) } // GetDeviceStatus 模拟获取设备状态方法(额外方法) func (m *MockDeviceRepo) GetDeviceStatus(id uint) (bool, error) { args := m.Called(id) return args.Bool(0), args.Error(1) }