diff --git a/src/Sort.php b/src/Sort.php new file mode 100644 index 0000000..6d37de6 --- /dev/null +++ b/src/Sort.php @@ -0,0 +1,70 @@ +' : '<') .' $b) ? -1 : 1; + ')); + + return true; + } +} + diff --git a/tests/SortTest.php b/tests/SortTest.php new file mode 100644 index 0000000..ed916f2 --- /dev/null +++ b/tests/SortTest.php @@ -0,0 +1,61 @@ + 'epsilon'], + ['name' => 'gamma'], + ['name' => 'alpha'], + ['name' => 'delta'], + ['name' => 'beta'], + ]; + + $sorted = [ + ['name' => 'alpha'], + ['name' => 'beta'], + ['name' => 'delta'], + ['name' => 'epsilon'], + ['name' => 'gamma'], + ]; + + Pickles\Sort::by('name', $shuffled); + + $this->assertEquals($sorted, $shuffled); + } + + public function testByNameDESC() + { + $shuffled = [ + ['name' => 'epsilon'], + ['name' => 'gamma'], + ['name' => 'alpha'], + ['name' => 'delta'], + ['name' => 'beta'], + ]; + + $sorted = [ + ['name' => 'gamma'], + ['name' => 'epsilon'], + ['name' => 'delta'], + ['name' => 'beta'], + ['name' => 'alpha'], + ]; + + Pickles\Sort::by('name', $shuffled, Pickles\Sort::DESC); + + $this->assertEquals($sorted, $shuffled); + } + + public function testMissingField() + { + $shuffled = [['foo' => 'bar', 'bar' => 'foo']]; + $sorted = [['foo' => 'bar', 'bar' => 'foo']]; + + Pickles\Sort::by('name', $shuffled); + + $this->assertEquals($sorted, $shuffled); + } +} +