/**
  * @covers phpDocumentor\Descriptor\ClassDescriptor::getMagicProperties
  */
 public function testGetMagicPropertiesUsingPropertyTags()
 {
     $variableName = 'variableName';
     $description = 'description';
     $types = new Collection(array('string'));
     $this->assertEquals(0, $this->fixture->getMagicProperties()->count());
     $propertyMock = m::mock('phpDocumentor\\Descriptor\\Tag\\PropertyDescriptor');
     $propertyMock->shouldReceive('getVariableName')->andReturn($variableName);
     $propertyMock->shouldReceive('getDescription')->andReturn($description);
     $propertyMock->shouldReceive('getTypes')->andReturn($types);
     $this->fixture->getTags()->get('property', new Collection())->add($propertyMock);
     $magicProperties = $this->fixture->getMagicProperties();
     $this->assertCount(1, $magicProperties);
     /** @var PropertyDescriptor $magicProperty */
     $magicProperty = current($magicProperties->getAll());
     $this->assertEquals($variableName, $magicProperty->getName());
     $this->assertEquals($description, $magicProperty->getDescription());
     $this->assertEquals($types, $magicProperty->getTypes());
     $mock = m::mock('phpDocumentor\\Descriptor\\ClassDescriptor');
     $mock->shouldReceive('getMagicProperties')->andReturn(new Collection(array('magicProperties')));
     $this->fixture->setParent($mock);
     $magicProperties = $this->fixture->getMagicProperties();
     $this->assertCount(2, $magicProperties);
 }