@@ -218,6 +218,34 @@ public function testObjectGetWhenKeyIsNullOrEmpty()
218218 $ this ->assertEquals ($ object , object_get ($ object , ' ' ));
219219 }
220220
221+ public function testDataHas ()
222+ {
223+ $ object = (object ) ['users ' => ['name ' => ['Taylor ' , 'Otwell ' ]]];
224+ $ array = [(object ) ['users ' => [(object ) ['name ' => 'Taylor ' ]]]];
225+ $ dottedArray = ['users ' => ['first.name ' => 'Taylor ' , 'middle.name ' => null ]];
226+ $ arrayAccess = new SupportTestArrayAccess (['price ' => 56 , 'user ' => new SupportTestArrayAccess (['name ' => 'John ' ]), 'email ' => null ]);
227+ $ sameKeyMultiLevel = (object ) ['name ' => 'Taylor ' , 'company ' => ['name ' => 'Laravel ' ]];
228+
229+ $ this ->assertTrue (data_has ($ object , 'users.name.0 ' ));
230+ $ this ->assertTrue (data_has ($ array , '0.users.0.name ' ));
231+ $ this ->assertFalse (data_has ($ array , '0.users.3 ' ));
232+ $ this ->assertFalse (data_has ($ array , '0.users.3 ' ));
233+ $ this ->assertFalse (data_has ($ array , '0.users.3 ' ));
234+ $ this ->assertTrue (data_has ($ dottedArray , ['users ' , 'first.name ' ]));
235+ $ this ->assertTrue (data_has ($ dottedArray , ['users ' , 'middle.name ' ]));
236+ $ this ->assertFalse (data_has ($ dottedArray , ['users ' , 'last.name ' ]));
237+ $ this ->assertTrue (data_has ($ arrayAccess , 'price ' ));
238+ $ this ->assertTrue (data_has ($ arrayAccess , 'user.name ' ));
239+ $ this ->assertFalse (data_has ($ arrayAccess , 'foo ' ));
240+ $ this ->assertFalse (data_has ($ arrayAccess , 'user.foo ' ));
241+ $ this ->assertFalse (data_has ($ arrayAccess , 'foo ' ));
242+ $ this ->assertFalse (data_has ($ arrayAccess , 'user.foo ' ));
243+ $ this ->assertTrue (data_has ($ arrayAccess , 'email ' ));
244+ $ this ->assertTrue (data_has ($ sameKeyMultiLevel , 'name ' ));
245+ $ this ->assertTrue (data_has ($ sameKeyMultiLevel , 'company.name ' ));
246+ $ this ->assertFalse (data_has ($ sameKeyMultiLevel , 'foo.name ' ));
247+ }
248+
221249 public function testDataGet ()
222250 {
223251 $ object = (object ) ['users ' => ['name ' => ['Taylor ' , 'Otwell ' ]]];
0 commit comments