package netbox import "testing" func TestFormatHWID(t *testing.T) { tests := []struct { n int want string }{ {1, "HW-00001"}, {42, "HW-00042"}, {99999, "HW-99999"}, } for _, tt := range tests { got := formatHWID(tt.n) if got != tt.want { t.Errorf("formatHWID(%d) = %q, want %q", tt.n, got, tt.want) } } } func TestParseHWID(t *testing.T) { tests := []struct { s string want int wantErr bool }{ {"HW-00001", 1, false}, {"HW-00042", 42, false}, {"HW-99999", 99999, false}, {"", 0, true}, {"not-a-hw-id", 0, true}, {"HW-0001", 0, true}, // only 4 digits — invalid {"hw-00001", 0, true}, // lowercase — invalid } for _, tt := range tests { got, err := parseHWID(tt.s) if tt.wantErr && err == nil { t.Errorf("parseHWID(%q): expected error, got nil", tt.s) } if !tt.wantErr && err != nil { t.Errorf("parseHWID(%q): unexpected error: %v", tt.s, err) } if !tt.wantErr && got != tt.want { t.Errorf("parseHWID(%q) = %d, want %d", tt.s, got, tt.want) } } }