80 lines
1.8 KiB
Go
80 lines
1.8 KiB
Go
package gui
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
|
|
"huya-go/internal/huya"
|
|
)
|
|
|
|
func TestCookieCheckVerdict(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
resp *huya.GetUserScoreResp
|
|
err error
|
|
wantStatus string
|
|
}{
|
|
{
|
|
name: "valid",
|
|
resp: &huya.GetUserScoreResp{Status: 200, Msg: "请求成功"},
|
|
wantStatus: CookieStatusValid,
|
|
},
|
|
{
|
|
name: "account_not_bound",
|
|
resp: &huya.GetUserScoreResp{Status: 500, Msg: "账号未绑定!"},
|
|
wantStatus: CookieStatusExpired,
|
|
},
|
|
{
|
|
name: "login_expired",
|
|
resp: &huya.GetUserScoreResp{Status: 500, Msg: "登录态已失效,请重新登录"},
|
|
wantStatus: CookieStatusExpired,
|
|
},
|
|
{
|
|
name: "too_frequent_is_unknown",
|
|
resp: &huya.GetUserScoreResp{Status: 500, Msg: "活动太火爆了,请稍后重试"},
|
|
wantStatus: CookieStatusUnknown,
|
|
},
|
|
{
|
|
name: "timeout_is_unknown",
|
|
err: context.DeadlineExceeded,
|
|
wantStatus: CookieStatusUnknown,
|
|
},
|
|
{
|
|
name: "nil_response_is_unknown",
|
|
wantStatus: CookieStatusUnknown,
|
|
},
|
|
{
|
|
name: "network_error_is_unknown",
|
|
err: errors.New("connection reset"),
|
|
wantStatus: CookieStatusUnknown,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, _, _ := cookieCheckVerdict(tt.resp, tt.err)
|
|
if got != tt.wantStatus {
|
|
t.Fatalf("cookieCheckVerdict() status = %q, want %q", got, tt.wantStatus)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestCookieCheckConcurrency(t *testing.T) {
|
|
tests := []struct {
|
|
input int
|
|
want int
|
|
}{
|
|
{input: 0, want: 5},
|
|
{input: 1, want: 3},
|
|
{input: 7, want: 7},
|
|
{input: 50, want: 10},
|
|
}
|
|
for _, tt := range tests {
|
|
if got := cookieCheckConcurrency(tt.input); got != tt.want {
|
|
t.Fatalf("cookieCheckConcurrency(%d) = %d, want %d", tt.input, got, tt.want)
|
|
}
|
|
}
|
|
}
|