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)); }