package hfb import "testing" const sampleText = `上号方式:QQ扫码 哈夫币纯币:156 段位:铂金 等级:60 保险格数:9 每日消耗:10 体力:7 负重:7 AWM子弹数量:80 6头数量:13 6甲数量:12 皮肤:暗星 绝密KD:0.2 押金:350 号主在线时间:11:00 至 00:00 封禁记录:无 常用地区:海南 回收比例:1:47.0 回收租金:332 联系电话:15203616450` func TestParseUploadTextSample(t *testing.T) { parsed, err := ParseUploadText(sampleText) if err != nil { t.Fatalf("ParseUploadText() error = %v", err) } account := parsed.Account if account.LoginMethod != "QQ扫码" { t.Fatalf("LoginMethod = %q", account.LoginMethod) } if account.Currency.HafuCoin != 156 { t.Fatalf("HafuCoin = %v", account.Currency.HafuCoin) } if account.Currency.RecycleRatio != 47 { t.Fatalf("RecycleRatio = %v", account.Currency.RecycleRatio) } if account.ContactPhone != "15203616450" { t.Fatalf("ContactPhone = %q", account.ContactPhone) } if got := len(account.Inventory.Skins); got != 1 || account.Inventory.Skins[0] != "暗星" { t.Fatalf("Skins = %#v", account.Inventory.Skins) } } func TestParseUploadTextASCIIDelimiterKeepsRatioValue(t *testing.T) { text := sampleText + "\n上传人:张三" parsed, err := ParseUploadText(text) if err != nil { t.Fatalf("ParseUploadText() error = %v", err) } if parsed.UploaderName != "张三" { t.Fatalf("UploaderName = %q", parsed.UploaderName) } if parsed.Account.Currency.RecycleRatio != 47 { t.Fatalf("RecycleRatio = %v", parsed.Account.Currency.RecycleRatio) } } func TestParseUploadTextMissingRequiredField(t *testing.T) { _, err := ParseUploadText("上号方式:QQ扫码") if err == nil { t.Fatal("ParseUploadText() expected error") } }