Files
tyapi-server/internal/infrastructure/external/yushan/yushan_test.go
2025-08-25 15:44:06 +08:00

84 lines
1.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package yushan
import (
"testing"
"time"
)
func TestGenerateRequestID(t *testing.T) {
service := &YushanService{
config: YushanConfig{
ApiKey: "test_api_key_123",
},
}
id1 := service.generateRequestID()
// 等待一小段时间确保时间戳不同
time.Sleep(time.Millisecond)
id2 := service.generateRequestID()
if id1 == "" || id2 == "" {
t.Error("请求ID生成失败")
}
if id1 == id2 {
t.Error("不同时间生成的请求ID应该不同")
}
// 验证ID格式
if len(id1) < 20 { // yushan_ + 8位十六进制 + 其他
t.Errorf("请求ID长度不足实际: %s", id1)
}
}
func TestGenerateRandomString(t *testing.T) {
service := &YushanService{}
str1, err := service.GenerateRandomString()
if err != nil {
t.Fatalf("生成随机字符串失败: %v", err)
}
str2, err := service.GenerateRandomString()
if err != nil {
t.Fatalf("生成随机字符串失败: %v", err)
}
if str1 == "" || str2 == "" {
t.Error("随机字符串为空")
}
if str1 == str2 {
t.Error("两次生成的随机字符串应该不同")
}
// 验证长度16字节 = 32位十六进制字符
if len(str1) != 32 || len(str2) != 32 {
t.Error("随机字符串长度应该是32位")
}
}
func TestIsJSON(t *testing.T) {
testCases := []struct {
input string
expected bool
}{
{"{}", true},
{"[]", true},
{"{\"key\": \"value\"}", true},
{"[1, 2, 3]", true},
{"invalid json", false},
{"", false},
{"{invalid}", false},
}
for _, tc := range testCases {
result := IsJSON(tc.input)
if result != tc.expected {
t.Errorf("输入: %s, 期望: %v, 实际: %v", tc.input, tc.expected, result)
}
}
}