@@ -39,6 +39,10 @@ public function testAdd()
39
39
$ this ->assertEquals (['developer ' => ['name ' => 'Ferid ' ]], Arr::add ([], 'developer.name ' , 'Ferid ' ));
40
40
$ this ->assertEquals ([1 => 'hAz ' ], Arr::add ([], 1 , 'hAz ' ));
41
41
$ this ->assertEquals ([1 => [1 => 'hAz ' ]], Arr::add ([], 1.1 , 'hAz ' ));
42
+
43
+ // Case where the key already exists
44
+ $ this ->assertEquals (['type ' => 'Table ' ], Arr::add (['type ' => 'Table ' ], 'type ' , 'Chair ' ));
45
+ $ this ->assertEquals (['category ' => ['type ' => 'Table ' ]], Arr::add (['category ' => ['type ' => 'Table ' ]], 'category.type ' , 'Chair ' ));
42
46
}
43
47
44
48
public function testCollapse ()
@@ -48,8 +52,8 @@ public function testCollapse()
48
52
$ this ->assertEquals (['foo ' , 'bar ' , 'baz ' ], Arr::collapse ($ data ));
49
53
50
54
// Case including numeric and string elements
51
- $ array = [[1 ], [2 ], [3 ], ['foo ' , 'bar ' ], collect ([ ' baz ' , ' boom ' ]) ];
52
- $ this ->assertEquals ([1 , 2 , 3 , 'foo ' , 'bar ' , ' baz ' , ' boom ' ], Arr::collapse ($ array ));
55
+ $ array = [[1 ], [2 ], [3 ], ['foo ' , 'bar ' ]];
56
+ $ this ->assertEquals ([1 , 2 , 3 , 'foo ' , 'bar ' ], Arr::collapse ($ array ));
53
57
54
58
// Case with empty two-dimensional arrays
55
59
$ emptyArray = [[], [], []];
@@ -504,6 +508,10 @@ public function testGet()
504
508
$ this ->assertSame ('dayle ' , Arr::get ($ array , 'names.otherDeveloper ' , function () {
505
509
return 'dayle ' ;
506
510
}));
511
+
512
+ // Test array has a null key
513
+ $ this ->assertSame ('bar ' , Arr::get (['' => 'bar ' ], '' ));
514
+ $ this ->assertSame ('bar ' , Arr::get (['' => ['' => 'bar ' ]], '. ' ));
507
515
}
508
516
509
517
public function testHas ()
@@ -619,6 +627,8 @@ public function testIsList()
619
627
$ this ->assertTrue (Arr::isList ([0 => 'foo ' , 'bar ' ]));
620
628
$ this ->assertTrue (Arr::isList ([0 => 'foo ' , 1 => 'bar ' ]));
621
629
630
+ $ this ->assertFalse (Arr::isList ([-1 => 1 ]));
631
+ $ this ->assertFalse (Arr::isList ([-1 => 1 , 0 => 2 ]));
622
632
$ this ->assertFalse (Arr::isList ([1 => 'foo ' , 'bar ' ]));
623
633
$ this ->assertFalse (Arr::isList ([1 => 'foo ' , 0 => 'bar ' ]));
624
634
$ this ->assertFalse (Arr::isList ([0 => 'foo ' , 'bar ' => 'baz ' ]));
@@ -632,6 +642,17 @@ public function testOnly()
632
642
$ array = Arr::only ($ array , ['name ' , 'price ' ]);
633
643
$ this ->assertEquals (['name ' => 'Desk ' , 'price ' => 100 ], $ array );
634
644
$ this ->assertEmpty (Arr::only ($ array , ['nonExistingKey ' ]));
645
+
646
+ $ this ->assertEmpty (Arr::only ($ array , null ));
647
+
648
+ // Test with array having numeric keys
649
+ $ this ->assertEquals (['foo ' ], Arr::only (['foo ' , 'bar ' , 'baz ' ], 0 ));
650
+ $ this ->assertEquals ([1 => 'bar ' , 2 => 'baz ' ], Arr::only (['foo ' , 'bar ' , 'baz ' ], [1 , 2 ]));
651
+ $ this ->assertEmpty (Arr::only (['foo ' , 'bar ' , 'baz ' ], [3 ]));
652
+
653
+ // Test with array having numeric key and string key
654
+ $ this ->assertEquals (['foo ' ], Arr::only (['foo ' , 'bar ' => 'baz ' ], 0 ));
655
+ $ this ->assertEquals (['bar ' => 'baz ' ], Arr::only (['foo ' , 'bar ' => 'baz ' ], 'bar ' ));
635
656
}
636
657
637
658
public function testPluck ()
@@ -1501,5 +1522,15 @@ public function testSelect()
1501
1522
'name ' => 'Abigail ' ,
1502
1523
],
1503
1524
], Arr::select ($ array , 'name ' ));
1525
+
1526
+ $ this ->assertEquals ([
1527
+ [],
1528
+ [],
1529
+ ], Arr::select ($ array , 'nonExistingKey ' ));
1530
+
1531
+ $ this ->assertEquals ([
1532
+ [],
1533
+ [],
1534
+ ], Arr::select ($ array , null ));
1504
1535
}
1505
1536
}
0 commit comments