package mediacontentser import ( "encoding/json" "testing" ) func TestMediaContentInfoMarshalH265URL(t *testing.T) { tests := []struct { name string h265URL string want string }{ { name: "resource exists", h265URL: "https://cdn.example.com/h265/index.m3u8", want: "https://cdn.example.com/h265/index.m3u8", }, { name: "resource missing", want: "", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { data, err := json.Marshal(MediaContentInfo{ VideoUrl: "https://cdn.example.com/h264/index.m3u8", H265Url: tt.h265URL, }) if err != nil { t.Fatalf("marshal media content info: %v", err) } var response map[string]interface{} if err := json.Unmarshal(data, &response); err != nil { t.Fatalf("unmarshal response: %v", err) } if response["videoUrl"] != "https://cdn.example.com/h264/index.m3u8" { t.Fatalf("unexpected H.264 URL: %v", response["videoUrl"]) } if response["h265Url"] != tt.want { t.Fatalf("unexpected H.265 URL: %v", response["h265Url"]) } }) } } func TestAppMediaContentMarshalH265URL(t *testing.T) { data, err := json.Marshal(AppMediaContent{ VideoUrl: "https://cdn.example.com/h264/index.m3u8", H265Url: "https://cdn.example.com/h265/index.m3u8", }) if err != nil { t.Fatalf("marshal app media content: %v", err) } var response map[string]interface{} if err := json.Unmarshal(data, &response); err != nil { t.Fatalf("unmarshal app media content: %v", err) } if response["videoUrl"] != "https://cdn.example.com/h264/index.m3u8" { t.Fatalf("unexpected H.264 URL: %v", response["videoUrl"]) } if response["h265Url"] != "https://cdn.example.com/h265/index.m3u8" { t.Fatalf("unexpected H.265 URL: %v", response["h265Url"]) } }