diff -r 806e57d67020 -r e54dfe4d0b2b vendor/bundles/FOS/UserBundle/Tests/Security/Encoder/EncoderFactoryTest.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/bundles/FOS/UserBundle/Tests/Security/Encoder/EncoderFactoryTest.php Fri Sep 30 11:24:53 2011 +0200 @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace FOS\UserBundle\Tests\Security\Encoder; + +use Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder; +use FOS\UserBundle\Security\Encoder\EncoderFactory; + +class EncoderFactoryTest extends \PHPUnit_Framework_TestCase +{ + /** + * @covers FOS\UserBundle\Security\Encoder\EncoderFactory::getEncoder + * @covers FOS\UserBundle\Security\Encoder\EncoderFactory::createEncoder + */ + public function testGetEncoderWithUserAccount() + { + $factory = new EncoderFactory( + 'Symfony\Component\Security\Core\Encoder\MessageDigestPasswordEncoder', + false, + 1, + $this->getMock('Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface') + ); + + $userAccount = $this->getMock('FOS\UserBundle\Model\UserInterface'); + + $userAccount->expects($this->once()) + ->method('getAlgorithm') + ->will($this->returnValue('sha512')); + + $encoder = $factory->getEncoder($userAccount); + + $expectedEncoder = new MessageDigestPasswordEncoder('sha512', false, 1); + + $this->assertEquals($expectedEncoder->encodePassword('foo', 'bar'), $encoder->encodePassword('foo', 'bar')); + } + + public function testGetEncoderWithGenericAccount() + { + $genericFactory = $this->getMock('Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface'); + $encoder = $this->getMock('Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface'); + + $genericFactory + ->expects($this->once()) + ->method('getEncoder') + ->will($this->returnValue($encoder)) + ; + + $factory = new EncoderFactory(null , false, 1, $genericFactory); + + $this->assertSame($encoder, $factory->getEncoder($this->getMock('Symfony\Component\Security\Core\User\UserInterface'))); + } +}