function it_should_encode_password_when_attribute_changed(EncoderFactoryInterface $encoderFactory, User $user, PasswordEncoderInterface $encoder, LifecycleEventArgs $args, UnitOfWork $unitOfWork, EntityManager $entityManager, \Doctrine\ORM\Mapping\ClassMetadata $meta)
 {
     $args->getEntityManager()->willReturn($entityManager);
     $entityManager->getUnitOfWork()->willReturn($unitOfWork);
     $entityManager->getClassMetadata(Argument::any())->willReturn($meta);
     $unitOfWork->computeChangeSet(Argument::cetera())->willReturn();
     $user->getPassword()->willReturn('pass');
     $user->getSalt()->willReturn('salt');
     $args->getEntity()->willReturn($user);
     $encoderFactory->getEncoder($user)->willReturn($encoder);
     $encoder->encodePassword(Argument::any(), Argument::any())->willReturn('encoded_pass');
     $unitOfWork->getEntityChangeSet($user)->willReturn(['password' => 'password']);
     $user->setPassword('encoded_pass')->shouldBeCalled();
     $this->postPersist($args);
 }