package hardware import "testing" func TestCheckBaseBoardChanged(t *testing.T) { now := []BaseBoard{{Product: "X570", Manufacturer: "ASUS"}} if CheckBaseBoardChanged(now, []BaseBoard{{Product: "X570", Manufacturer: "ASUS"}}) { t.Error("相同主板不应判定变更") } if !CheckBaseBoardChanged(now, []BaseBoard{{Product: "B550", Manufacturer: "ASUS"}}) { t.Error("主板型号变化应判定变更") } if !CheckBaseBoardChanged(now, []BaseBoard{{Product: "X570", Manufacturer: "ASUS"}, {Product: "B550", Manufacturer: "MSI"}}) { t.Error("数量变化应判定变更") } if !CheckBaseBoardChanged(now, nil) { t.Error("数量变化应判定变更") } } func TestCheckBiosChanged(t *testing.T) { now := []Bios{{SMBIOSBIOSVersion: "1.0"}} if CheckBiosChanged(now, []Bios{{SMBIOSBIOSVersion: "1.0"}}) { t.Error("相同 BIOS 不应判定变更") } if !CheckBiosChanged(now, []Bios{{SMBIOSBIOSVersion: "2.0"}}) { t.Error("BIOS 版本变化应判定变更") } } func TestCheckProcessorChanged(t *testing.T) { now := []Processor{{Name: "Ryzen 5800X"}} if CheckProcessorChanged(now, []Processor{{Name: "Ryzen 5800X"}}) { t.Error("相同 CPU 不应判定变更") } if !CheckProcessorChanged(now, []Processor{{Name: "Ryzen 5900X"}}) { t.Error("CPU 型号变化应判定变更") } // 多个相同硬件乱序 now2 := []Processor{{Name: "A"}, {Name: "B"}} if CheckProcessorChanged(now2, []Processor{{Name: "B"}, {Name: "A"}}) { t.Error("乱序但集合相同不应判定变更") } // 重复硬件与新增硬件 if !CheckProcessorChanged([]Processor{{Name: "A"}, {Name: "A"}}, []Processor{{Name: "A"}, {Name: "B"}}) { t.Error("重复硬件与不同硬件混合应判定变更") } } func TestCheckPhysicalMemoryChanged(t *testing.T) { now := []PhysicalMemory{{Capacity: 8589934592}} if CheckPhysicalMemoryChanged(now, []PhysicalMemory{{Capacity: 8589934592}}) { t.Error("相同容量不应判定变更") } if !CheckPhysicalMemoryChanged(now, []PhysicalMemory{{Capacity: 17179869184}}) { t.Error("容量变化应判定变更") } } func TestCheckVideoControllerChanged(t *testing.T) { now := []VideoController{{Name: "RTX 3060"}} if CheckVideoControllerChanged(now, []VideoController{{Name: "RTX 3060"}}) { t.Error("相同显卡不应判定变更") } if !CheckVideoControllerChanged(now, []VideoController{{Name: "RTX 4060"}}) { t.Error("显卡变化应判定变更") } } func TestCheckDiskDriveChanged(t *testing.T) { now := []DiskDrive{{Caption: "Samsung SSD 980"}} if CheckDiskDriveChanged(now, []DiskDrive{{Caption: "Samsung SSD 980"}}) { t.Error("相同硬盘不应判定变更") } if !CheckDiskDriveChanged(now, []DiskDrive{{Caption: "Samsung SSD 990"}}) { t.Error("硬盘变化应判定变更") } } func TestCheckSoundDeviceChanged(t *testing.T) { now := []SoundDevice{{Name: "Realtek"}} if CheckSoundDeviceChanged(now, []SoundDevice{{Name: "Realtek"}}) { t.Error("相同声卡不应判定变更") } if !CheckSoundDeviceChanged(now, []SoundDevice{{Name: "Creative"}}) { t.Error("声卡变化应判定变更") } } func TestCheckNetworkAdapterChanged(t *testing.T) { now := []NetworkAdapter{{Name: "Intel I219"}} if CheckNetworkAdapterChanged(now, []NetworkAdapter{{Name: "Intel I219"}}) { t.Error("相同网卡不应判定变更") } if !CheckNetworkAdapterChanged(now, []NetworkAdapter{{Name: "Realtek 8168"}}) { t.Error("网卡变化应判定变更") } }