Skip to content

Commit 81bf3d1

Browse files
authored
Merge pull request #81 from DirectoryTree/oldest-and-newest-aliases
Add `oldest()` and `newest()` method aliases for `setFetchOrder`
2 parents f7e4c39 + 68787d7 commit 81bf3d1

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed

src/MessageQueryInterface.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,16 @@ public function setFetchOrderAsc(): MessageQueryInterface;
111111
*/
112112
public function setFetchOrderDesc(): MessageQueryInterface;
113113

114+
/**
115+
* Set the fetch order to show oldest messages first (ascending).
116+
*/
117+
public function oldest(): MessageQueryInterface;
118+
119+
/**
120+
* Set the fetch order to show newest messages first (descending).
121+
*/
122+
public function newest(): MessageQueryInterface;
123+
114124
/**
115125
* Count all available messages matching the current search criteria.
116126
*/

src/QueriesMessages.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,4 +272,20 @@ public function setFetchOrderDesc(): MessageQueryInterface
272272
{
273273
return $this->setFetchOrder('desc');
274274
}
275+
276+
/**
277+
* {@inheritDoc}
278+
*/
279+
public function oldest(): MessageQueryInterface
280+
{
281+
return $this->setFetchOrder('asc');
282+
}
283+
284+
/**
285+
* {@inheritDoc}
286+
*/
287+
public function newest(): MessageQueryInterface
288+
{
289+
return $this->setFetchOrder('desc');
290+
}
275291
}

tests/Unit/MessageQueryTest.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,26 @@ function query(?Mailbox $mailbox = null): MessageQuery
6767

6868
$stream->assertWritten('TAG2 UID STORE 1,2,3 +FLAGS.SILENT (\Deleted)');
6969
});
70+
71+
test('oldest sets fetch order to asc', function () {
72+
$query = query();
73+
74+
$query->oldest();
75+
76+
expect($query->getFetchOrder())->toBe('asc');
77+
});
78+
79+
test('newest sets fetch order to desc', function () {
80+
$query = query();
81+
82+
$query->newest();
83+
84+
expect($query->getFetchOrder())->toBe('desc');
85+
});
86+
87+
test('oldest and newest return query instance for chaining', function () {
88+
$query = query();
89+
90+
expect($query->oldest())->toBe($query);
91+
expect($query->newest())->toBe($query);
92+
});

0 commit comments

Comments
 (0)