public function testSort() { $map = new Map(['b' => 'bval', 'a' => 'aval', 'c' => 'cval']); $map->sort(); $this->assertEquals(['a' => 'aval', 'b' => 'bval', 'c' => 'cval'], $map->toArray()); $map = new Map(['b' => 'bval', 'a' => 'aval', 'c' => 'cval']); $map->sort(function ($a, $b) { if ($a == $b) { return 0; } return $a < $b ? -1 : 1; }); $this->assertEquals(['a' => 'aval', 'b' => 'bval', 'c' => 'cval'], $map->toArray()); $map = new Map(['b' => new Item('bval'), 'a' => new Item('aval'), 'c' => new Item('cval')]); $map->sort(new ComparableComparator()); $this->assertEquals(['a' => 'aval', 'b' => 'bval', 'c' => 'cval'], $map->map(function ($elem) { return $elem->getContent(); })->toArray()); }