public function testGetInvisiblePropertyByProperty()
{
$mother = new Mother();
$child = new Child();
$this->assertSame('private', Util::getInvisibleProperty($mother, 'privateProperty'));
$this->assertSame('private', Util::getInvisibleProperty($mother, 'privateProperty', 'invalidMethod'));
$this->assertSame('private', Util::getInvisibleProperty($child, 'privateProperty'));
$this->assertSame('private', Util::getInvisibleProperty($child, 'privateProperty', 'invalidMethod'));
$this->assertSame('protected', Util::getInvisibleProperty($child, 'protectedProperty'));
$this->assertSame('protected', Util::getInvisibleProperty($child, 'protectedProperty', 'invalidMethod'));
$this->assertSame('public', Util::getInvisibleProperty($mother, 'publicProperty'));
$this->assertSame('public', Util::getInvisibleProperty($mother, 'publicProperty', 'invalidMethod'));
$this->assertSame('public', Util::getInvisibleProperty($child, 'publicProperty'));
$this->assertSame('public', Util::getInvisibleProperty($child, 'publicProperty', 'invalidMethod'));
}