69 lines
1.7 KiB
Go
69 lines
1.7 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")
|
||
}
|
||
}
|