@@ -87,6 +87,108 @@ function folder(): Folder
8787 expect ($ message ->flags ())->toBe (['\\Seen ' ]);
8888});
8989
90+ test ('flag ' , function () {
91+ $ folder = folder ();
92+
93+ $ messages = $ folder ->messages ();
94+
95+ $ uid = $ messages ->append (
96+ new DraftMessage (
97+ 98+ text: 'flag test '
99+ )
100+ );
101+
102+ // Initially, message should not be marked as seen.
103+ $ message = $ messages ->withFlags ()->find ($ uid );
104+ expect ($ message ->isSeen ())->toBeFalse ();
105+
106+ // Mark message as seen.
107+ $ message ->markSeen ();
108+ $ message = $ messages ->withFlags ()->find ($ uid );
109+ expect ($ message ->isSeen ())->toBeTrue ();
110+
111+ // Unmark message as seen.
112+ $ message ->unmarkSeen ();
113+ $ message = $ messages ->withFlags ()->find ($ uid );
114+ expect ($ message ->isSeen ())->toBeFalse ();
115+ });
116+
117+ test ('copy ' , function () {
118+ $ folder = folder ();
119+
120+ $ messages = $ folder ->messages ();
121+
122+ $ uid = $ messages ->append (
123+ new DraftMessage (
124+ 125+ text: 'copy test '
126+ )
127+ );
128+
129+ $ message = $ messages ->withHeaders ()->withBody ()->find ($ uid );
130+
131+ $ targetFolder = $ folder ->mailbox ()->folders ()->firstOrCreate (
132+ $ targetFolderName = 'CopiedFolder '
133+ );
134+
135+ $ message ->copy ($ targetFolderName );
136+
137+ $ targetMessages = $ targetFolder ->messages ()->get ();
138+
139+ expect ($ targetMessages ->count ())->toBe (1 );
140+
141+ $ movedMessage = $ targetMessages ->first ();
142+
143+ expect ($ movedMessage ->text ())->toBe ('copy test ' );
144+ });
145+
146+ test ('move ' , function () {
147+ $ folder = folder ();
148+
149+ $ messages = $ folder ->messages ();
150+
151+ $ uid = $ messages ->append (
152+ new DraftMessage (
153+ 154+ text: 'move test '
155+ )
156+ );
157+
158+ $ message = $ messages ->withHeaders ()->withBody ()->find ($ uid );
159+
160+ $ targetFolder = $ folder ->mailbox ()->folders ()->firstOrCreate (
161+ $ targetFolderName = 'MovedFolder '
162+ );
163+
164+ $ message ->move ($ targetFolderName );
165+
166+ $ targetMessages = $ targetFolder ->messages ()->get ();
167+
168+ expect ($ targetMessages ->count ())->toBe (1 );
169+
170+ $ movedMessage = $ targetMessages ->first ();
171+
172+ expect ($ movedMessage ->text ())->toBe ('move test ' );
173+ });
174+
175+ test ('delete ' , function () {
176+ $ messages = folder ()->messages ();
177+
178+ $ uid = $ messages ->append (
179+ new DraftMessage (
180+ 181+ text: 'delete test '
182+ )
183+ );
184+
185+ $ message = $ messages ->find ($ uid );
186+
187+ $ message ->delete ();
188+
189+ expect ($ messages ->withFlags ()->find ($ uid )->isDeleted ())->toBeTrue ();
190+ });
191+
90192test ('retrieves messages using or statement ' , function () {
91193 $ folder = folder ();
92194
0 commit comments