44
55use DirectoryTree \ImapEngine \Collections \MessageCollection ;
66use DirectoryTree \ImapEngine \Enums \ImapFetchIdentifier ;
7- use DirectoryTree \ImapEngine \FolderInterface ;
87use DirectoryTree \ImapEngine \MessageInterface ;
98use DirectoryTree \ImapEngine \MessageQueryInterface ;
109use DirectoryTree \ImapEngine \Pagination \LengthAwarePaginator ;
@@ -18,25 +17,27 @@ class FakeMessageQuery implements MessageQueryInterface
1817 * Constructor.
1918 */
2019 public function __construct (
21- protected FolderInterface $ folder ,
22- /** @var FakeMessage[] */
23- protected array $ messages = [],
20+ protected FakeFolder $ folder
2421 ) {}
2522
2623 /**
2724 * {@inheritDoc}
2825 */
2926 public function get (): MessageCollection
3027 {
31- return new MessageCollection ($ this ->messages );
28+ return new MessageCollection (
29+ $ this ->folder ->getMessages ()
30+ );
3231 }
3332
3433 /**
3534 * {@inheritDoc}
3635 */
3736 public function count (): int
3837 {
39- return count ($ this ->messages );
38+ return count (
39+ $ this ->folder ->getMessages ()
40+ );
4041 }
4142
4243 /**
@@ -66,7 +67,9 @@ public function append(string $message, mixed $flags = null): int
6667 $ uid = $ lastMessage ->uid () + 1 ;
6768 }
6869
69- $ this ->messages [] = new FakeMessage ($ uid , $ flags === null ? [] : $ flags , $ message );
70+ $ this ->folder ->addMessage (
71+ new FakeMessage ($ uid , $ flags === null ? [] : $ flags , $ message )
72+ );
7073
7174 return $ uid ;
7275 }
@@ -124,6 +127,8 @@ public function destroy(array|int $uids, bool $expunge = false): void
124127 $ messages ->pull ($ uid );
125128 }
126129
127- $ this ->messages = $ messages ->values ()->all ();
130+ $ this ->folder ->setMessages (
131+ $ messages ->values ()->all ()
132+ );
128133 }
129134}
0 commit comments