Example #1
0
 public function testSort()
 {
     $collection = new Collection([10 => 1, 30 => 3, 20 => 2, 'a' => -1, 'b' => 0, 'c' => 42, 1 => '1', '111', '11']);
     $result = $collection->asort();
     $expected = new Collection(['a' => -1, 'b' => 0, 1 => '1', 10 => 1, 20 => 2, 30 => 3, 32 => '11', 'c' => 42, 31 => '111']);
     $this->assertEquals(array_values($expected->toArray()), array_values($result->toArray()));
     $result = $collection->ksort();
     $expected = new Collection(['a' => -1, 'b' => 0, 'c' => 42, 1 => '1', 10 => 1, 20 => 2, 30 => 3, 31 => '111', 32 => '11']);
     $this->assertEquals(array_keys($expected->toArray()), array_keys($result->toArray()));
     $result = $collection->uasort(function ($a, $b) {
         return $a < $b ? 1 : ($a > $b ? -1 : 0);
     });
     $expected = new Collection([31 => '111', 'c' => 42, 32 => '11', 30 => 3, 20 => 2, 10 => 1, 1 => '1', 'b' => 0, 'a' => -1]);
     $this->assertEquals(array_values($expected->toArray()), array_values($result->toArray()));
     $result = $collection->uksort(function ($a, $b) {
         return $a < $b ? 1 : ($a > $b ? -1 : 0);
     });
     $expected = new Collection([32 => '11', 31 => '111', 30 => 3, 20 => 2, 10 => 1, 1 => '1', 'c' => 42, 'b' => 0, 'a' => -1]);
     $this->assertEquals(array_keys($expected->toArray()), array_keys($result->toArray()));
 }