@@ -62,6 +62,7 @@ protected function setUp(): void {
6262 $ this ->performanceLogger = $ this ->createMock (PerformanceLogger::class);
6363 $ this ->aliasService = $ this ->createMock (AliasesService::class);
6464 $ this ->transmissionService = $ this ->createMock (TransmissionService::class);
65+ $ this ->mailManager = $ this ->createMock (IMailManager::class);
6566
6667 $ this ->transmission = new MailTransmission (
6768 $ this ->imapClientFactory ,
@@ -73,6 +74,7 @@ protected function setUp(): void {
7374 $ this ->performanceLogger ,
7475 $ this ->aliasService ,
7576 $ this ->transmissionService ,
77+ $ this ->mailManager ,
7678 );
7779 }
7880
@@ -402,4 +404,33 @@ public function testSendLocalDraft(): void {
402404
403405 $ this ->transmission ->saveLocalDraft (new Account ($ mailAccount ), $ localMessage );
404406 }
407+
408+ public function testCreateDraftsMailboxAndSave (): void {
409+ $ mailAccount = new MailAccount ();
410+ $ mailAccount ->setId (10 );
411+ $ mailAccount ->setUserId ('alice ' );
412+ $ mailAccount ->setName ('Alice ' );
413+ $ mailAccount->
setEmail (
'[email protected] ' );
414+ $ mailAccount ->setDraftsMailboxId (null );
415+ $ localMessage = new LocalMessage ();
416+ $ localMessage ->setType (LocalMessage::TYPE_DRAFT );
417+ $ localMessage ->setAccountId ($ mailAccount ->getId ());
418+ $ localMessage ->setAliasId (1 );
419+ $ localMessage ->setSendAt (1000 );
420+ $ localMessage ->setSubject ('Subject ' );
421+ $ localMessage ->setBodyHtml ('<p>Body</p> ' );
422+ $ localMessage ->setHtml (true );
423+ $ to = new Recipient ();
424+ $ to ->setLabel ('Bob ' );
425+ $ to->
setEmail (
'[email protected] ' );
426+ $ to ->setType (Recipient::TYPE_TO );
427+ $ localMessage ->setRecipients ([$ to ]);
428+
429+ $ this ->mailManager ->expects (self ::once ())
430+ ->method ('createMailbox ' );
431+ $ this ->messageMapper ->expects (self ::once ())
432+ ->method ('save ' );
433+
434+ $ this ->transmission ->saveLocalDraft (new Account ($ mailAccount ), $ localMessage );
435+ }
405436}
0 commit comments