|
|
@@ -17,6 +17,8 @@ declare(strict_types=1);
|
|
|
namespace Cake\Test\TestCase\Collection\Iterator;
|
|
|
|
|
|
use ArrayObject;
|
|
|
+use Cake\Chronos\Chronos;
|
|
|
+use Cake\Chronos\ChronosDate;
|
|
|
use Cake\Collection\Iterator\SortIterator;
|
|
|
use Cake\TestSuite\TestCase;
|
|
|
use DateInterval;
|
|
|
@@ -223,4 +225,38 @@ class SortIteratorTest extends TestCase
|
|
|
];
|
|
|
$this->assertEquals($expected, $sorted->toList());
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Tests sorting with Chronos datetime
|
|
|
+ */
|
|
|
+ public function testSortWithChronosDateTime(): void
|
|
|
+ {
|
|
|
+ $items = new ArrayObject([
|
|
|
+ new Chronos('2014-07-21'),
|
|
|
+ new ChronosDate('2015-06-30'),
|
|
|
+ new DateTimeImmutable('2013-08-12'),
|
|
|
+ ]);
|
|
|
+ $callback = fn ($d) => $d;
|
|
|
+ $sorted = new SortIterator($items, $callback);
|
|
|
+ $expected = [
|
|
|
+ new ChronosDate('2015-06-30'),
|
|
|
+ new Chronos('2014-07-21'),
|
|
|
+ new DateTimeImmutable('2013-08-12'),
|
|
|
+ ];
|
|
|
+ $this->assertEquals($expected, $sorted->toList());
|
|
|
+
|
|
|
+ $items = new ArrayObject([
|
|
|
+ new Chronos('2014-07-21'),
|
|
|
+ new ChronosDate('2015-06-30'),
|
|
|
+ new DateTimeImmutable('2013-08-12'),
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $sorted = new SortIterator($items, $callback, SORT_ASC);
|
|
|
+ $expected = [
|
|
|
+ new DateTimeImmutable('2013-08-12'),
|
|
|
+ new Chronos('2014-07-21'),
|
|
|
+ new ChronosDate('2015-06-30'),
|
|
|
+ ];
|
|
|
+ $this->assertEquals($expected, $sorted->toList());
|
|
|
+ }
|
|
|
}
|