* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Tests\Mapping; use PHPUnit\Framework\TestCase; use Symfony\Component\Validator\Constraints\Valid; use Symfony\Component\Validator\Mapping\MemberMetadata; use Symfony\Component\Validator\Tests\Fixtures\ClassConstraint; use Symfony\Component\Validator\Tests\Fixtures\ConstraintA; use Symfony\Component\Validator\Tests\Fixtures\ConstraintB; class MemberMetadataTest extends TestCase { protected $metadata; protected function setUp() { $this->metadata = new TestMemberMetadata( 'Symfony\Component\Validator\Tests\Fixtures\Entity', 'getLastName', 'lastName' ); } protected function tearDown() { $this->metadata = null; } public function testAddConstraintRequiresClassConstraints() { $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('Symfony\Component\Validator\Exception\ConstraintDefinitionException'); $this->metadata->addConstraint(new ClassConstraint()); } public function testSerialize() { $this->metadata->addConstraint(new ConstraintA(array('property1' => 'A'))); $this->metadata->addConstraint(new ConstraintB(array('groups' => 'TestGroup'))); $metadata = unserialize(serialize($this->metadata)); $this->assertEquals($this->metadata, $metadata); } public function testSerializeCollectionCascaded() { $this->metadata->addConstraint(new Valid(array('traverse' => true))); $metadata = unserialize(serialize($this->metadata)); $this->assertEquals($this->metadata, $metadata); } public function testSerializeCollectionNotCascaded() { $this->metadata->addConstraint(new Valid(array('traverse' => false))); $metadata = unserialize(serialize($this->metadata)); $this->assertEquals($this->metadata, $metadata); } } class TestMemberMetadata extends MemberMetadata { public function getPropertyValue($object) { } protected function newReflectionMember($object) { } } __halt_compiler();----SIGNATURE:----gMnNJcz9RC+ByxUXiZBP4sGoHdUxGngUo4IysDmXF3zemCHpa9cCutk4uq+lq1aTR30jEZ+hKqjRAJKxRGqn+R496irw34T9I5IDiE4j1+uk7NUlg1gHFKaoNBfsU6pKrNcivdoC0B8dsln6ns+4sMMK94y686XTrcP2ONruSVAE4Zy4huZn7DYf7Z9TVnPkPlI+WEQ7K0tCidMhxn+8iyG1NlygDXs+aXsARXknJMQnJoDj95fz2SuVmZS9GdisC5JchFRbq83R6c5HFerR/BZ9edauSapdj69Csg+tUWj/j9eBRvmdb+M2jJQQuJJzUa9t0S4QJ3bmoy/kmKQGAv/YTmJGOgGlCO2D41aemaJzmqx58DrKYwj4S1Q76awvg1K4VTS0p3kQeAOa+vEVLHkVRlMSZk3hT0YtEzvL/giqezRKBGMakJmjHOcT09IC2s8fPXNqpOPaJt1JeSmqAcjyS+Q/VAGbAs5MtOW9N+7ypiq2aWRr9/4hr4FsTE5PHaw8ugMuHA3HhawaXoZ+pTj6aAmfnDDMQMdpNTXyyXNLqrVaZrOB6BI6k9duDaqfItGX7TJLlrnVmhqlimRLxg0cp2x6tpE9dZRXgylpkmMWO2e5ayqy7NTTMlc2EH00Nf/6Vwk4dGAIccYtCy542fUA4YlRgEHW6ae2RLoChPU=----ATTACHMENT:----ODYyMjUxNTQ2MDA0NTg1NiA1NDk3ODI1MTU2NzMwNjQ0IDgwMDUwMTUzNDM0Njg2Mg==