@@ -335,15 +335,16 @@ await emailApi.SaveCalendarModelAsync(
335335
336336 var exists = await IsFileExist ( calendarFile ) ;
337337 Assert . True ( exists ) ;
338-
338+
339339 var alternate = await emailApi . ConvertCalendarModelToAlternateAsync (
340340 new ConvertCalendarModelToAlternateRequest (
341341 new CalendarDtoAlternateRq ( calendar , "Create" , null ) ) ) ;
342342 var email = new EmailDto
343343 {
344344 AlternateViews = new List < AlternateView > { alternate } ,
345345 From = new MailAddress ( "From address" , "cloud.em@yandex.ru" , "Accepted" ) ,
346- To = new List < MailAddress > { new MailAddress ( "To address" , "cloud.em@yandex.ru" , null ) } ,
346+ To = new List < MailAddress >
347+ { new MailAddress ( "To address" , "cloud.em@yandex.ru" , null ) } ,
347348 Subject = "Some subject" ,
348349 Body = "Some body"
349350 } ;
@@ -360,6 +361,60 @@ await emailApi.SaveEmailModelAsync(
360361 Assert . That ( emlFileContent . Contains ( "cloud.em@yandex.ru" ) ) ;
361362 }
362363
364+ [ Test ]
365+ [ Pipeline ]
366+ public async Task ContactModelTest ( )
367+ {
368+ var contact = new ContactDto
369+ {
370+ Gender = "Male" ,
371+ Surname = "Thomas" ,
372+ GivenName = "Alex" ,
373+ EmailAddresses = new List < EmailAddress >
374+ {
375+ new EmailAddress
376+ {
377+ Category = new EnumWithCustomOfEmailAddressCategory ( "Work" , null ) ,
378+ Address = "alex.thomas@work.com" ,
379+ Preferred = true ,
380+ DisplayName = "Alex Thomas"
381+ }
382+ } ,
383+ PhoneNumbers = new List < PhoneNumber >
384+ {
385+ new PhoneNumber
386+ {
387+ Category = new EnumWithCustomOfPhoneNumberCategory ( "Work" , null ) ,
388+ Number = "+49211424721" ,
389+ Preferred = true
390+ }
391+ }
392+ } ;
393+
394+ var contactFile = $ "{ Guid . NewGuid ( ) . ToString ( ) } .vcf";
395+ await emailApi . SaveContactModelAsync (
396+ new SaveContactModelRequest (
397+ "VCard" , contactFile ,
398+ new StorageModelRqOfContactDto ( contact ,
399+ new StorageFolderLocation ( StorageName , folder ) ) ) ) ;
400+ var exists = await IsFileExist ( contactFile ) ;
401+ Assert . True ( exists ) ;
402+ }
403+
404+ [ Test ]
405+ public async Task AiBcrParseModelTest ( )
406+ {
407+ var result = await emailApi . AiBcrParseModelAsync (
408+ new AiBcrParseModelRequest (
409+ new AiBcrBase64Rq (
410+ null ,
411+ new List < AiBcrBase64Image >
412+ {
413+ new AiBcrBase64Image ( true , FileToBase64 ( BcrAiTestFilePath ) )
414+ } ) ) ) ;
415+ Assert . AreEqual ( "Alex Thomas" , result . Value . First ( ) . DisplayName ) ;
416+ }
417+
363418 private static string FileToBase64 ( string filePath )
364419 {
365420 var bytes = File . ReadAllBytes ( filePath ) ;
0 commit comments