package aliyun import ( "encoding/json" "testing" green "github.com/alibabacloud-go/green-20220302/v3/client" "github.com/alibabacloud-go/tea/dara" "github.com/tinode/chat/server/store/types" ) func TestBuildOSSServiceParameters(t *testing.T) { got, err := buildOSSServiceParameters(OSSObject{ BucketName: "im-oss-t1", ObjectName: "tenants/1/2026/08/file", RegionID: "cn-shenzhen", DataID: "task-1", }) if err != nil { t.Fatal(err) } var params map[string]string if err := json.Unmarshal([]byte(got), ¶ms); err != nil { t.Fatal(err) } for key, want := range map[string]string{ "ossBucketName": "im-oss-t1", "ossObjectName": "tenants/1/2026/08/file", "ossRegionId": "cn-shenzhen", "dataId": "task-1", } { if params[key] != want { t.Fatalf("params[%s] = %q, want %q", key, params[key], want) } } } func TestStatusFromRiskLevel(t *testing.T) { cases := map[string]string{ "": types.FileReviewStatusRunning, "none": types.FileReviewStatusClean, "low": types.FileReviewStatusClean, "medium": types.FileReviewStatusRisky, "high": types.FileReviewStatusRisky, } for input, want := range cases { if got := statusFromRiskLevel(input); got != want { t.Fatalf("statusFromRiskLevel(%q) = %q, want %q", input, got, want) } } } func TestLabelsFromFileResult(t *testing.T) { got := labelsFromFileResult(&green.DescribeFileModerationResultResponseBodyData{ PageResult: []*green.DescribeFileModerationResultResponseBodyDataPageResult{ {ImageResult: []*green.DescribeFileModerationResultResponseBodyDataPageResultImageResult{ {LabelResult: []*green.DescribeFileModerationResultResponseBodyDataPageResultImageResultLabelResult{ {Label: dara.String("porn")}, {Label: dara.String("porn")}, }}, }}, {TextResult: []*green.DescribeFileModerationResultResponseBodyDataPageResultTextResult{ {Labels: dara.String("violence,ad")}, }}, }, }) if len(got) != 3 || got[0] != "porn" || got[1] != "violence" || got[2] != "ad" { t.Fatalf("labelsFromFileResult = %#v", got) } }