* * 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:----nK5tAmsECJ6tLchCLnEaKB1EUrZ71vBeWAtoeonDd8d3CWZEbdsSU0oaqJiHnFY5eMDGWMPJGN/lk3u0rROBV4goUJRss0EHLQGkMVTV2j/1iFpWsKiU6UcVkrjgAdgEal2Kx40RgKjVDv6kOT5r9gC0jCvjbS/9ZyBeShTTfUQ0Wqw/u9TPHErxmWa+mrFo37BzZ0f0BCD7qTTB7xy5amv7j0xN3Ols/tUpZAVcnJR/lZ81qgUhi06xI0pFArM4lf+MIlY/9iIXhl+Zmfz6aD6VJ8AXvS/DZJv/Qyhlp0HCCrqXRis6TVfoY5zpzX6B0MCPTrMfT0X7ek5KxX3fY93zPZJWg4j9E6ffek1jYghU58WOP5/qGs+4FYRi5EgmbGbAam2shE8Ki7Ii+i5WpnaGlD1yH7BdRjp2MsWW76JzPsk7E4wO9SUWj5Z6xpLVvBy8itaP6IRn9eHtQhSoh+KU6cllhRvVxrmoqIgk4+DEzaDvHpuVi45Z+AyUY1u/qVUeV94vyXrnkmpuVh1eGrNJGtrtthCez03/0JJMlLuWFnjML3RbBNqMH8aABuX+hY5CLzAjy4pfv0OiPdmHZMOBKSezCYPtvecmq2xn1SY9oiTP5+KMS2JPnfGf96XGw0PclltJg4KIR2McpgiI31xOA59cLm0B2iIPFizAPlw=----ATTACHMENT:----OTc3OTI5NDU5MDYzMzgwNSA4NTQ0MjA5NDI2MDkyNzQ3IDU4MjAwMDEyNTA3MjYwODc=