Skip to content

Commit e3f203c

Browse files
committed
Add flag tests
1 parent 6599a0f commit e3f203c

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

tests/Unit/Testing/FakeMessageTest.php

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?php
22

3+
use DirectoryTree\ImapEngine\Enums\ImapFlag;
34
use DirectoryTree\ImapEngine\Testing\FakeMessage;
45

56
test('it can be created with basic properties', function () {
@@ -73,3 +74,47 @@
7374
// Different content
7475
expect($message1->is($message5))->toBeFalse();
7576
});
77+
78+
test('it can add flags using flag method', function () {
79+
$message = new FakeMessage(1, [], 'Test content');
80+
81+
expect($message->flags())->toBe([]);
82+
expect($message->isSeen())->toBeFalse();
83+
expect($message->isFlagged())->toBeFalse();
84+
85+
// Add Seen flag
86+
$message->flag('\\Seen', '+');
87+
expect($message->flags())->toContain('\\Seen');
88+
expect($message->hasFlag(ImapFlag::Seen))->toBeTrue();
89+
expect($message->isSeen())->toBeTrue();
90+
91+
// Add Flagged flag
92+
$message->flag('\\Flagged', '+');
93+
expect($message->flags())->toContain('\\Flagged');
94+
expect($message->hasFlag(ImapFlag::Flagged))->toBeTrue();
95+
expect($message->isFlagged())->toBeTrue();
96+
expect($message->flags())->toHaveCount(2);
97+
});
98+
99+
test('it can remove flags using flag method', function () {
100+
$message = new FakeMessage(1, ['\\Seen', '\\Flagged'], 'Test content');
101+
102+
expect($message->flags())->toContain('\\Seen');
103+
expect($message->flags())->toContain('\\Flagged');
104+
expect($message->hasFlag(ImapFlag::Seen))->toBeTrue();
105+
expect($message->hasFlag(ImapFlag::Flagged))->toBeTrue();
106+
expect($message->isSeen())->toBeTrue();
107+
expect($message->isFlagged())->toBeTrue();
108+
109+
// Remove Seen flag
110+
$message->flag('\\Seen', '-');
111+
expect($message->flags())->not->toContain('\\Seen');
112+
expect($message->isSeen())->toBeFalse();
113+
expect($message->isFlagged())->toBeTrue();
114+
115+
// Remove Flagged flag
116+
$message->flag('\\Flagged', '-');
117+
expect($message->flags())->not->toContain('\\Flagged');
118+
expect($message->isFlagged())->toBeFalse();
119+
expect($message->flags())->toBeEmpty();
120+
});

0 commit comments

Comments
 (0)