Skip to content

Commit 63fc503

Browse files
committed
IHF: multiarray_sort_by tests added.
1 parent b9d6dc4 commit 63fc503

File tree

1 file changed

+61
-1
lines changed

1 file changed

+61
-1
lines changed

tests/array/MultiarraySortByTest.php

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public function it_can_sort_by_one_field_with_specifying_desc_sort_order()
5757
}
5858

5959
/** @test */
60-
public function it_can_sort_by_two_fields_without_specifying_sort_order()
60+
public function it_can_sort_by_two_fields_without_specifying_sort_order_and_asc_would_be_used_for_both()
6161
{
6262
$array = [
6363
['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000],
@@ -75,4 +75,64 @@ public function it_can_sort_by_two_fields_without_specifying_sort_order()
7575

7676
$this->assertEquals($expected, multiarray_sort_by($array, 'name', 'model'));
7777
}
78+
79+
/** @test */
80+
public function it_can_sort_by_two_fields_with_specifying_asc_sort_order_only_for_the_first()
81+
{
82+
$array = [
83+
['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000],
84+
['name' => 'Mercedes-Benz', 'model' => 'GLE Coupe', 'price' => 110000],
85+
['name' => 'BMW', 'model' => 'X6', 'price' => 77000],
86+
['name' => 'Porsche', 'model' => 'Cayenne', 'price' => 117000],
87+
];
88+
89+
$expected = [
90+
['name' => 'BMW', 'model' => 'X6', 'price' => 77000],
91+
['name' => 'Mercedes-Benz', 'model' => 'GLE Coupe', 'price' => 110000],
92+
['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000],
93+
['name' => 'Porsche', 'model' => 'Cayenne', 'price' => 117000],
94+
];
95+
96+
$this->assertEquals($expected, multiarray_sort_by($array, 'name', SORT_ASC, 'model'));
97+
}
98+
99+
/** @test */
100+
public function it_can_sort_by_two_fields_with_specifying_asc_sort_order_only_for_the_second()
101+
{
102+
$array = [
103+
['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000],
104+
['name' => 'Mercedes-Benz', 'model' => 'GLE Coupe', 'price' => 110000],
105+
['name' => 'BMW', 'model' => 'X6', 'price' => 77000],
106+
['name' => 'Porsche', 'model' => 'Cayenne', 'price' => 117000],
107+
];
108+
109+
$expected = [
110+
['name' => 'BMW', 'model' => 'X6', 'price' => 77000],
111+
['name' => 'Mercedes-Benz', 'model' => 'GLE Coupe', 'price' => 110000],
112+
['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000],
113+
['name' => 'Porsche', 'model' => 'Cayenne', 'price' => 117000],
114+
];
115+
116+
$this->assertEquals($expected, multiarray_sort_by($array, 'name', 'model', SORT_ASC));
117+
}
118+
119+
/** @test */
120+
public function it_can_sort_by_two_fields_with_specifying_asc_sort_order_for_both()
121+
{
122+
$array = [
123+
['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000],
124+
['name' => 'Mercedes-Benz', 'model' => 'GLE Coupe', 'price' => 110000],
125+
['name' => 'BMW', 'model' => 'X6', 'price' => 77000],
126+
['name' => 'Porsche', 'model' => 'Cayenne', 'price' => 117000],
127+
];
128+
129+
$expected = [
130+
['name' => 'BMW', 'model' => 'X6', 'price' => 77000],
131+
['name' => 'Mercedes-Benz', 'model' => 'GLE Coupe', 'price' => 110000],
132+
['name' => 'Mercedes-Benz', 'model' => 'GLS', 'price' => 120000],
133+
['name' => 'Porsche', 'model' => 'Cayenne', 'price' => 117000],
134+
];
135+
136+
$this->assertEquals($expected, multiarray_sort_by($array, 'name', SORT_ASC, 'model', SORT_ASC));
137+
}
78138
}

0 commit comments

Comments
 (0)