* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Tests\Fixtures\ClassConstraint; use Symfony\Component\Validator\Tests\Fixtures\ConstraintA; use Symfony\Component\Validator\Tests\Fixtures\ConstraintB; use Symfony\Component\Validator\Tests\Fixtures\ConstraintC; use Symfony\Component\Validator\Tests\Fixtures\ConstraintWithValue; use Symfony\Component\Validator\Tests\Fixtures\ConstraintWithValueAsDefault; class ConstraintTest extends TestCase { public function testSetProperties() { $constraint = new ConstraintA(array( 'property1' => 'foo', 'property2' => 'bar', )); $this->assertEquals('foo', $constraint->property1); $this->assertEquals('bar', $constraint->property2); } public function testSetNotExistingPropertyThrowsException() { $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('Symfony\Component\Validator\Exception\InvalidOptionsException'); new ConstraintA(array( 'foo' => 'bar', )); } public function testMagicPropertiesAreNotAllowed() { $constraint = new ConstraintA(); $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('Symfony\Component\Validator\Exception\InvalidOptionsException'); $constraint->foo = 'bar'; } public function testInvalidAndRequiredOptionsPassed() { $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('Symfony\Component\Validator\Exception\InvalidOptionsException'); new ConstraintC(array( 'option1' => 'default', 'foo' => 'bar', )); } public function testSetDefaultProperty() { $constraint = new ConstraintA('foo'); $this->assertEquals('foo', $constraint->property2); } public function testSetDefaultPropertyDoctrineStyle() { $constraint = new ConstraintA(array('value' => 'foo')); $this->assertEquals('foo', $constraint->property2); } public function testSetDefaultPropertyDoctrineStylePlusOtherProperty() { $constraint = new ConstraintA(array('value' => 'foo', 'property1' => 'bar')); $this->assertEquals('foo', $constraint->property2); $this->assertEquals('bar', $constraint->property1); } public function testSetDefaultPropertyDoctrineStyleWhenDefaultPropertyIsNamedValue() { $constraint = new ConstraintWithValueAsDefault(array('value' => 'foo')); $this->assertEquals('foo', $constraint->value); $this->assertNull($constraint->property); } public function testDontSetDefaultPropertyIfValuePropertyExists() { $constraint = new ConstraintWithValue(array('value' => 'foo')); $this->assertEquals('foo', $constraint->value); $this->assertNull($constraint->property); } public function testSetUndefinedDefaultProperty() { $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('Symfony\Component\Validator\Exception\ConstraintDefinitionException'); new ConstraintB('foo'); } public function testRequiredOptionsMustBeDefined() { $this->{method_exists($this, $_ = 'expectException') ? $_ : 'setExpectedException'}('Symfony\Component\Validator\Exception\MissingOptionsException'); new ConstraintC(); } public function testRequiredOptionsPassed() { $constraint = new ConstraintC(array('option1' => 'default')); $this->assertSame('default', $constraint->option1); } public function testGroupsAreConvertedToArray() { $constraint = new ConstraintA(array('groups' => 'Foo')); $this->assertEquals(array('Foo'), $constraint->groups); } public function testAddDefaultGroupAddsGroup() { $constraint = new ConstraintA(array('groups' => 'Default')); $constraint->addImplicitGroupName('Foo'); $this->assertEquals(array('Default', 'Foo'), $constraint->groups); } public function testAllowsSettingZeroRequiredPropertyValue() { $constraint = new ConstraintA(0); $this->assertEquals(0, $constraint->property2); } public function testCanCreateConstraintWithNoDefaultOptionAndEmptyArray() { $constraint = new ConstraintB(array()); $this->assertSame(array(Constraint::PROPERTY_CONSTRAINT, Constraint::CLASS_CONSTRAINT), $constraint->getTargets()); } public function testGetTargetsCanBeString() { $constraint = new ClassConstraint(); $this->assertEquals('class', $constraint->getTargets()); } public function testGetTargetsCanBeArray() { $constraint = new ConstraintA(); $this->assertEquals(array('property', 'class'), $constraint->getTargets()); } public function testSerialize() { $constraint = new ConstraintA(array( 'property1' => 'foo', 'property2' => 'bar', )); $restoredConstraint = unserialize(serialize($constraint)); $this->assertEquals($constraint, $restoredConstraint); } public function testSerializeInitializesGroupsOptionToDefault() { $constraint = new ConstraintA(array( 'property1' => 'foo', 'property2' => 'bar', )); $constraint = unserialize(serialize($constraint)); $expected = new ConstraintA(array( 'property1' => 'foo', 'property2' => 'bar', 'groups' => 'Default', )); $this->assertEquals($expected, $constraint); } public function testSerializeKeepsCustomGroups() { $constraint = new ConstraintA(array( 'property1' => 'foo', 'property2' => 'bar', 'groups' => 'MyGroup', )); $constraint = unserialize(serialize($constraint)); $this->assertSame(array('MyGroup'), $constraint->groups); } /** * @expectedException \Symfony\Component\Validator\Exception\InvalidArgumentException */ public function testGetErrorNameForUnknownCode() { Constraint::getErrorName(1); } public function testOptionsAsDefaultOption() { $constraint = new ConstraintA($options = array('value1')); $this->assertEquals($options, $constraint->property2); $constraint = new ConstraintA($options = array('value1', 'property1' => 'value2')); $this->assertEquals($options, $constraint->property2); } /** * @expectedException \Symfony\Component\Validator\Exception\InvalidOptionsException * @expectedExceptionMessage The options "0", "5" do not exist */ public function testInvalidOptions() { new ConstraintA(array('property2' => 'foo', 'bar', 5 => 'baz')); } public function testOptionsWithInvalidInternalPointer() { $options = array('property1' => 'foo'); next($options); next($options); $constraint = new ConstraintA($options); $this->assertEquals('foo', $constraint->property1); } } __halt_compiler();----SIGNATURE:----CDfBrqWgzVx73clt4bUQ5WIi7TF3dN4k+Rw50tztlfE0N7X4DZvDOod6uLc3mFyTiOLGR3UsCmrDRqxUDcosirzKLzR84Go8Gbkr3fVG8r7As6gW0ez6bFmF15S88z+hc/z83FSP24e5XvwnmuNrMTskk+wRVl/gmpnuuETF9wWhV/J+gSgrjVnWnbN/Jwf/oHZftfz8XJXXX/i4GE1uq+MLW+UQMn+IYhNOgPnulRT94K59Uajasl0wgwii6dN7ytigOnaWDzyfWKvgYPsUydYamm4w85hCmbrI5DjFmd+2+tbeJa3RufLnWefUQmfODmt5SYqmHgo3RtHnWxvlI2uFzVgJZpk0tjYadm8YECsPzLabdRD27UONeNfRzkR612Oy334pIsfwnCTpzlClfdH4lydwps0veaAEOwnJ0KFnN823ucwr9m5k7pFZqtwb/IDJm5LcmwpsSn3lBDqnAlfVk5YavAytypTS1BI2y1DjyvYd9h68eUluX7ARX1d24w6jMuAtOsvhpawUfeKDGPz0WLQm2d/qiiA1cCPRi00m0j0uJAAWz3qAR/cIAedTaPC9yLLHRGzkqfgXA3xwlAKIfyXM5p4ly08anuSUIyQZNQQUH2gJeK3DFV0Im/3BMgo1BuSUh9P4wNof3rrd8hcro/owCm8r/J9+NgvNBJk=----ATTACHMENT:----OTkwNzc0OTM3MzYyMjY2NyA0MTA3Nzk4MjA1NjU5MTU2IDk5NzIwNjkzOTg3ODk0MTQ=