@@ -10,7 +10,9 @@ import (
1010 "github.com/stretchr/testify/assert"
1111
1212 "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/data/domain/dataset"
13+ eval_common "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/common"
1314 "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/domain/eval_set"
15+ app_eval_set "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/evaluation/eval_set"
1416 "github.com/coze-dev/coze-loop/backend/modules/evaluation/domain/entity"
1517)
1618
@@ -258,3 +260,195 @@ func TestCreateDatasetItemOutputDO2DTO(t *testing.T) {
258260 IsNewItem : & isNewItem ,
259261 }, got )
260262}
263+
264+ func TestUploadAttachmentDetailsDO2DTOs (t * testing.T ) {
265+ t .Parallel ()
266+
267+ assert .Nil (t , UploadAttachmentDetailsDO2DTOs (nil ))
268+
269+ contentType := entity .ContentTypeImage
270+ input := []* entity.UploadAttachmentDetail {{
271+ ContentType : & contentType ,
272+ }}
273+ got := UploadAttachmentDetailsDO2DTOs (input )
274+ if assert .Len (t , got , 1 ) {
275+ assert .Equal (t , dataset .ContentType_Image , * got [0 ].ContentType )
276+ }
277+ }
278+
279+ func TestUploadAttachmentDetailDO2DTO (t * testing.T ) {
280+ t .Parallel ()
281+
282+ tests := []struct {
283+ name string
284+ input * entity.UploadAttachmentDetail
285+ expected * app_eval_set.UploadAttachmentDetail
286+ }{
287+ {
288+ name : "nil input" ,
289+ input : nil ,
290+ expected : nil ,
291+ },
292+ {
293+ name : "text content type" ,
294+ input : & entity.UploadAttachmentDetail {ContentType : gptr .Of (entity .ContentTypeText )},
295+ expected : & app_eval_set.UploadAttachmentDetail {
296+ ContentType : gptr .Of (dataset .ContentType_Text ),
297+ ErrorType : gptr .Of (dataset .ItemErrorType (0 )),
298+ },
299+ },
300+ {
301+ name : "image content type" ,
302+ input : & entity.UploadAttachmentDetail {ContentType : gptr .Of (entity .ContentTypeImage )},
303+ expected : & app_eval_set.UploadAttachmentDetail {
304+ ContentType : gptr .Of (dataset .ContentType_Image ),
305+ ErrorType : gptr .Of (dataset .ItemErrorType (0 )),
306+ },
307+ },
308+ {
309+ name : "audio content type" ,
310+ input : & entity.UploadAttachmentDetail {ContentType : gptr .Of (entity .ContentTypeAudio )},
311+ expected : & app_eval_set.UploadAttachmentDetail {
312+ ContentType : gptr .Of (dataset .ContentType_Audio ),
313+ ErrorType : gptr .Of (dataset .ItemErrorType (0 )),
314+ },
315+ },
316+ {
317+ name : "video content type" ,
318+ input : & entity.UploadAttachmentDetail {ContentType : gptr .Of (entity .ContentTypeVideo )},
319+ expected : & app_eval_set.UploadAttachmentDetail {
320+ ContentType : gptr .Of (dataset .ContentType_Video ),
321+ ErrorType : gptr .Of (dataset .ItemErrorType (0 )),
322+ },
323+ },
324+ {
325+ name : "multipart content type" ,
326+ input : & entity.UploadAttachmentDetail {ContentType : gptr .Of (entity .ContentTypeMultipart )},
327+ expected : & app_eval_set.UploadAttachmentDetail {
328+ ContentType : gptr .Of (dataset .ContentType_MultiPart ),
329+ ErrorType : gptr .Of (dataset .ItemErrorType (0 )),
330+ },
331+ },
332+ {
333+ name : "unknown content type" ,
334+ input : & entity.UploadAttachmentDetail {ContentType : gptr .Of (entity .ContentType ("unknown" ))},
335+ expected : & app_eval_set.UploadAttachmentDetail {
336+ ErrorType : gptr .Of (dataset .ItemErrorType (0 )),
337+ },
338+ },
339+ {
340+ name : "nil content type" ,
341+ input : & entity.UploadAttachmentDetail {},
342+ expected : & app_eval_set.UploadAttachmentDetail {
343+ ErrorType : gptr .Of (dataset .ItemErrorType (0 )),
344+ },
345+ },
346+ {
347+ name : "full fields" ,
348+ input : & entity.UploadAttachmentDetail {
349+ ContentType : gptr .Of (entity .ContentTypeVideo ),
350+ ImagexServiceID : gptr .Of ("imagex-service-id" ),
351+ OriginImage : & entity.Image {
352+ Name : gptr .Of ("origin-image-name" ),
353+ URL : gptr .Of ("origin-image-url" ),
354+ URI : gptr .Of ("origin-image-uri" ),
355+ ThumbURL : gptr .Of ("origin-image-thumb" ),
356+ StorageProvider : gptr .Of (entity .StorageProvider_TOS ),
357+ },
358+ Image : & entity.Image {
359+ Name : gptr .Of ("image-name" ),
360+ URL : gptr .Of ("image-url" ),
361+ URI : gptr .Of ("image-uri" ),
362+ ThumbURL : gptr .Of ("image-thumb" ),
363+ StorageProvider : gptr .Of (entity .StorageProvider_VETOS ),
364+ },
365+ OriginAudio : & entity.Audio {
366+ Format : gptr .Of ("mp3" ),
367+ URL : gptr .Of ("origin-audio-url" ),
368+ Name : gptr .Of ("origin-audio-name" ),
369+ URI : gptr .Of ("origin-audio-uri" ),
370+ StorageProvider : gptr .Of (entity .StorageProvider_TOS ),
371+ },
372+ Audio : & entity.Audio {
373+ Format : gptr .Of ("wav" ),
374+ URL : gptr .Of ("audio-url" ),
375+ Name : gptr .Of ("audio-name" ),
376+ URI : gptr .Of ("audio-uri" ),
377+ StorageProvider : gptr .Of (entity .StorageProvider_VETOS ),
378+ },
379+ OriginVideo : & entity.Video {
380+ Name : gptr .Of ("origin-video-name" ),
381+ URL : gptr .Of ("origin-video-url" ),
382+ URI : gptr .Of ("origin-video-uri" ),
383+ ThumbURL : gptr .Of ("origin-video-thumb" ),
384+ StorageProvider : gptr .Of (entity .StorageProvider_TOS ),
385+ },
386+ Video : & entity.Video {
387+ Name : gptr .Of ("video-name" ),
388+ URL : gptr .Of ("video-url" ),
389+ URI : gptr .Of ("video-uri" ),
390+ ThumbURL : gptr .Of ("video-thumb" ),
391+ StorageProvider : gptr .Of (entity .StorageProvider_VETOS ),
392+ },
393+ ErrMsg : gptr .Of ("upload failed" ),
394+ ErrorType : gptr .Of (entity .ItemErrorType_UploadImageFailed ),
395+ },
396+ expected : & app_eval_set.UploadAttachmentDetail {
397+ ContentType : gptr .Of (dataset .ContentType_Video ),
398+ ImagexServiceID : gptr .Of ("imagex-service-id" ),
399+ OriginImage : & eval_common.Image {
400+ Name : gptr .Of ("origin-image-name" ),
401+ URL : gptr .Of ("origin-image-url" ),
402+ URI : gptr .Of ("origin-image-uri" ),
403+ ThumbURL : gptr .Of ("origin-image-thumb" ),
404+ StorageProvider : gptr .Of (dataset .StorageProvider_TOS ),
405+ },
406+ Image : & eval_common.Image {
407+ Name : gptr .Of ("image-name" ),
408+ URL : gptr .Of ("image-url" ),
409+ URI : gptr .Of ("image-uri" ),
410+ ThumbURL : gptr .Of ("image-thumb" ),
411+ StorageProvider : gptr .Of (dataset .StorageProvider_VETOS ),
412+ },
413+ OriginAudio : & eval_common.Audio {
414+ Format : gptr .Of ("mp3" ),
415+ URL : gptr .Of ("origin-audio-url" ),
416+ Name : gptr .Of ("origin-audio-name" ),
417+ URI : gptr .Of ("origin-audio-uri" ),
418+ StorageProvider : gptr .Of (dataset .StorageProvider_TOS ),
419+ },
420+ Audio : & eval_common.Audio {
421+ Format : gptr .Of ("wav" ),
422+ URL : gptr .Of ("audio-url" ),
423+ Name : gptr .Of ("audio-name" ),
424+ URI : gptr .Of ("audio-uri" ),
425+ StorageProvider : gptr .Of (dataset .StorageProvider_VETOS ),
426+ },
427+ OriginVideo : & eval_common.Video {
428+ Name : gptr .Of ("origin-video-name" ),
429+ URL : gptr .Of ("origin-video-url" ),
430+ URI : gptr .Of ("origin-video-uri" ),
431+ ThumbURL : gptr .Of ("origin-video-thumb" ),
432+ StorageProvider : gptr .Of (dataset .StorageProvider_TOS ),
433+ },
434+ Video : & eval_common.Video {
435+ Name : gptr .Of ("video-name" ),
436+ URL : gptr .Of ("video-url" ),
437+ URI : gptr .Of ("video-uri" ),
438+ ThumbURL : gptr .Of ("video-thumb" ),
439+ StorageProvider : gptr .Of (dataset .StorageProvider_VETOS ),
440+ },
441+ ErrMsg : gptr .Of ("upload failed" ),
442+ ErrorType : gptr .Of (dataset .ItemErrorType_UploadImageFailed ),
443+ },
444+ },
445+ }
446+
447+ for _ , tt := range tests {
448+ tt := tt
449+ t .Run (tt .name , func (t * testing.T ) {
450+ t .Parallel ()
451+ assert .Equal (t , tt .expected , UploadAttachmentDetailDO2DTO (tt .input ))
452+ })
453+ }
454+ }
0 commit comments