public function testIsCloneable()
{
$reflector = new ClassReflector(new SingleFileSourceLocator(__DIR__ . '/../Fixture/ExampleClass.php'));
$this->assertTrue($reflector->reflect(Fixture\ExampleClass::class)->isCloneable());
$this->assertTrue($reflector->reflect(Fixture\ClassWithParent::class)->isCloneable());
$this->assertTrue($reflector->reflect(Fixture\FinalClass::class)->isCloneable());
$this->assertFalse($reflector->reflect(Fixture\ExampleTrait::class)->isCloneable());
$this->assertFalse($reflector->reflect(Fixture\AbstractClass::class)->isCloneable());
$this->assertFalse($reflector->reflect(Fixture\ExampleInterface::class)->isCloneable());
$reflector = new ClassReflector(new SingleFileSourceLocator(__DIR__ . '/../Fixture/ClassesWithCloneMethod.php'));
$this->assertTrue($reflector->reflect(ClassesWithCloneMethod\WithPublicClone::class)->isCloneable());
$this->assertFalse($reflector->reflect(ClassesWithCloneMethod\WithProtectedClone::class)->isCloneable());
$this->assertFalse($reflector->reflect(ClassesWithCloneMethod\WithPrivateClone::class)->isCloneable());
}