Skip to content

Commit

Permalink
merged branch jakzal/2.0-StaticMethodLoaderFix (PR #3937)
Browse files Browse the repository at this point in the history
Commits
-------

089188f [Validator] Fixed StaticMethodLoader when used with abstract methods.

Discussion
----------

[Validator] Fixed StaticMethodLoader when used with abstract methods.

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #3179
  • Loading branch information
fabpot committed Apr 14, 2012
2 parents 098b934 + 089188f commit 0078faa
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
Expand Up @@ -37,7 +37,7 @@ public function loadClassMetadata(ClassMetadata $metadata)
throw new MappingException(sprintf('The method %s::%s should be static', $reflClass->getName(), $this->methodName));
}

if ($reflMethod->getDeclaringClass()->getName() != $reflClass->getName()) {
if ($reflClass->isAbstract() || $reflMethod->getDeclaringClass()->getName() != $reflClass->getName()) {
return false;
}

Expand Down
Expand Up @@ -35,6 +35,14 @@ public function testLoadClassMetadataReturnsFalseIfNotSuccessful()
$this->assertFalse($loader->loadClassMetadata($metadata));
}

public function testLoadClassMetadataReturnsFalseIfMethodIsAbstract()
{
$loader = new StaticMethodLoader('loadMetadata');
$metadata = new ClassMetadata(__NAMESPACE__.'\AbstractStaticLoaderEntity');

$this->assertFalse($loader->loadClassMetadata($metadata));
}

public function testLoadClassMetadata()
{
$loader = new StaticMethodLoader('loadMetadata');
Expand Down Expand Up @@ -80,3 +88,8 @@ static public function loadMetadata(ClassMetadata $metadata)
$metadata->addConstraint(new ConstraintA());
}
}

abstract class AbstractStaticLoaderEntity
{
abstract public static function loadMetadata(ClassMetadata $metadata);
}

0 comments on commit 0078faa

Please sign in to comment.