Пример #1
0
 public function testAllEmpty()
 {
     $user = $this->inputUser;
     $this->assertFalse(Pluck::allEmpty($user, 'User.id'));
     $this->assertFalse(Pluck::allEmpty($user, 'Post.{n}.Comment.{n}'));
     $this->assertFalse(Pluck::allEmpty($user, 'Post.{n}.Comment.{n}.id'));
     $this->assertTrue(Pluck::allEmpty($user, 'Bad.path'));
     $this->assertTrue(Pluck::allEmpty($user, array('Bad.path', 'Also.{n}.bad')));
     $this->assertFalse(Pluck::allEmpty($user, array('Bad.path', 'Also.{n}.bad', 'User.name')));
     // paths matching empty values = filtered out... still empty
     $data = $this->inputMixed;
     $this->assertFalse(Pluck::allEmpty($data, 'true'));
     $this->assertTrue(Pluck::allEmpty($data, 'false'));
     $this->assertTrue(Pluck::allEmpty($data, 'null'));
     // paths matching 0 is technically empty value, but it doesn't get
     // filtered out, and thus, exists, and thus, is not empty
     //   GOTCHA!
     $this->assertFalse(Pluck::allEmpty($data, 'zero'));
     $this->assertFalse(Pluck::allEmpty($data, 'zero', false));
     // solution...
     $this->assertTrue(Pluck::allEmpty($data, 'zero', true));
 }