diff -r 806e57d67020 -r e54dfe4d0b2b vendor/bundles/FOS/UserBundle/Tests/Validation/PasswordValidatorTest.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/bundles/FOS/UserBundle/Tests/Validation/PasswordValidatorTest.php Fri Sep 30 11:24:53 2011 +0200 @@ -0,0 +1,73 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace FOS\UserBundle\Tests\Validation; + +use FOS\UserBundle\Validator\PasswordValidator; +use FOS\UserBundle\Validator\Password; +use FOS\UserBundle\Form\Model\ChangePassword; + +class PasswordValidatorTest extends \PHPUnit_Framework_TestCase +{ + private $validator; + private $constraint; + private $encoderFactory; + private $changePasswordObject; + private $encoder; + + public function setUp() + { + $this->constraint = new Password(); + $this->constraint->passwordProperty = 'current'; + $this->constraint->userProperty = 'user'; + + $this->changePasswordObject = new ChangePassword($this->getMock('FOS\UserBundle\Model\UserInterface')); + $this->encoderFactory = $this->getMock('Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface'); + $this->encoder = $this->getMock('Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface'); + + $this->validator = new PasswordValidator(); + $this->validator->setEncoderFactory($this->encoderFactory); + } + + /** + * @expectedException \RuntimeException + */ + public function testExceptionForNonObject() + { + $this->validator->isValid('propertyValue', $this->constraint); + } + + public function testFalseOnInvalidPassword() + { + $this->encoderFactory->expects($this->once()) + ->method('getEncoder') + ->will($this->returnValue($this->encoder)); + + $this->encoder->expects($this->once()) + ->method('isPasswordValid') + ->will($this->returnValue(false)); + + $this->assertFalse($this->validator->isValid($this->changePasswordObject, $this->constraint)); + } + + public function testTrueOnValidPassword() + { + $this->encoderFactory->expects($this->once()) + ->method('getEncoder') + ->will($this->returnValue($this->encoder)); + + $this->encoder->expects($this->once()) + ->method('isPasswordValid') + ->will($this->returnValue(true)); + + $this->assertTrue($this->validator->isValid($this->changePasswordObject, $this->constraint)); + } +}