public function testXmlEntityUpdatingWorks()
{
$metadata = $this->generateBookXmlEntityFixture();
$metadata->mapField(array('fieldName' => 'test', 'type' => 'string'));
$this->generator->writeXmlEntityClass($metadata, $this->tmpDir);
$this->assertFileExists($this->tmpDir . "/" . $this->namespace . "/~XmlEntityGeneratorBook.php");
$book = $this->newInstance($metadata);
$reflClass = new \ReflectionClass($metadata->name);
$this->assertTrue($reflClass->hasProperty('name'), "Regenerating keeps property 'name'.");
$this->assertTrue($reflClass->hasProperty('status'), "Regenerating keeps property 'status'.");
$this->assertTrue($reflClass->hasProperty('id'), "Regenerating keeps property 'id'.");
$this->assertTrue($reflClass->hasProperty('test'), "Check for property test failed.");
$this->assertTrue($reflClass->getProperty('test')->isPrivate(), "Check for private property test failed.");
$this->assertTrue($reflClass->hasMethod('getTest'), "Check for method 'getTest' failed.");
$this->assertTrue($reflClass->getMethod('getTest')->isPublic(), "Check for public visibility of method 'getTest' failed.");
$this->assertTrue($reflClass->hasMethod('setTest'), "Check for method 'setTest' failed.");
$this->assertTrue($reflClass->getMethod('setTest')->isPublic(), "Check for public visibility of method 'setTest' failed.");
}