117 lines
3.0 KiB
Go
117 lines
3.0 KiB
Go
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")
|
||
}
|
||
}
|
||
|
||
func TestParseUploadTextBanRecordAndRemark(t *testing.T) {
|
||
text := `上号方式:QQ扫码
|
||
哈夫币纯币:156
|
||
段位:铂金
|
||
等级:60
|
||
保险格数:9
|
||
每日消耗:10
|
||
体力:7
|
||
负重:7
|
||
AWM子弹数量:80
|
||
6头数量:13
|
||
6甲数量:12
|
||
皮肤:暗星
|
||
绝密KD:0.2
|
||
押金:350
|
||
号主在线时间:11:00 至 00:00
|
||
封禁记录:2026/01/23封禁3天 2026/01/26封禁一天
|
||
常用地区:海南
|
||
回收比例:1:47.0
|
||
回收租金:332
|
||
联系电话:15203616450
|
||
备注:有语音封禁`
|
||
parsed, err := ParseUploadText(text)
|
||
if err != nil {
|
||
t.Fatalf("ParseUploadText() error = %v", err)
|
||
}
|
||
if parsed.Account.BanRecord != "有" {
|
||
t.Fatalf("BanRecord = %q, want 有", parsed.Account.BanRecord)
|
||
}
|
||
wantRemark := "有语音封禁\n封禁历史:2026/01/23封禁3天 2026/01/26封禁一天"
|
||
if parsed.Account.Remark != wantRemark {
|
||
t.Fatalf("Remark = %q, want %q", parsed.Account.Remark, wantRemark)
|
||
}
|
||
}
|
||
|
||
func TestParseUploadTextNoBanKeepsEmptyRemark(t *testing.T) {
|
||
parsed, err := ParseUploadText(sampleText)
|
||
if err != nil {
|
||
t.Fatalf("ParseUploadText() error = %v", err)
|
||
}
|
||
if parsed.Account.BanRecord != "无" {
|
||
t.Fatalf("BanRecord = %q, want 无", parsed.Account.BanRecord)
|
||
}
|
||
if parsed.Account.Remark != "" {
|
||
t.Fatalf("Remark = %q, want empty", parsed.Account.Remark)
|
||
}
|
||
}
|