Fix unit tests

This commit is contained in:
Nicolas Le Goff
2013-12-24 15:25:00 +01:00
parent 1ac7a536f9
commit c10c78f740
56 changed files with 167 additions and 241 deletions

View File

@@ -248,7 +248,7 @@ class Edit implements ControllerProviderInterface
$query = $request->query->get('query');
$results = $VC->find($query, $app['authentication']->getUser(), $app['translator'], $databox);
$results = $VC->find($query, $app['authentication']->getUser(), $databox);
$list = [];

View File

@@ -550,12 +550,15 @@ class Push implements ControllerProviderInterface
$user->setFirstName($request->request->get('firstname'))
->setLastName($request->request->get('lastname'));
if ($request->request->get('company'))
if ($request->request->get('company')) {
$user->setCompany($request->request->get('company'));
if ($request->request->get('job'))
}
if ($request->request->get('job')) {
$user->setCompany($request->request->get('job'));
if ($request->request->get('form_geonameid'))
}
if ($request->request->get('form_geonameid')) {
$app['manipulator.user']->setGeonameId($user, $request->request->get('form_geonameid'));
}
$result['message'] = $app->trans('User successfully created');
$result['success'] = true;

View File

@@ -143,7 +143,7 @@ class Account implements ControllerProviderInterface
$url = $app->url('account_reset_email', ['token' => $token]);
try {
$receiver = Receiver::fromUser($app['authentication']->getUser(), $app['translator']);
$receiver = Receiver::fromUser($app['authentication']->getUser());
} catch (InvalidArgumentException $e) {
$app->addFlash('error', $app->trans('phraseanet::erreur: echec du serveur de mail'));

View File

@@ -522,7 +522,7 @@ class Login implements ControllerProviderInterface
*/
private function sendAccountUnlockEmail(PhraseaApplication $app, User $user)
{
$receiver = Receiver::fromUser($user, $app['translator']);
$receiver = Receiver::fromUser($user);
$expire = new \DateTime('+3 days');
$token = $app['tokens']->getUrlToken(\random::TYPE_PASSWORD, $user->getId(), $expire, $user->getEmail());
@@ -573,7 +573,7 @@ class Login implements ControllerProviderInterface
$user->setMailLocked(false);
try {
$receiver = Receiver::fromUser($user, $app['translator']);
$receiver = Receiver::fromUser($user);
} catch (InvalidArgumentException $e) {
$app->addFlash('success', $app->trans('Account has been unlocked, you can now login.'));
@@ -663,7 +663,7 @@ class Login implements ControllerProviderInterface
}
try {
$receiver = Receiver::fromUser($user, $app['translator']);
$receiver = Receiver::fromUser($user);
} catch (InvalidArgumentException $e) {
throw new FormProcessingException($app->trans('Invalid email address'));
}

View File

@@ -79,7 +79,7 @@ class Aggregate implements FeedInterface
public static function createFromUser(Application $app, User $user)
{
$feeds = $app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Feed')->getAllForUser($app['acl']->get($user));
$token = $app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\AggregateToken')->findOneBy(['user' => $user->getId()]);
$token = $app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\AggregateToken')->findOneBy(['user' => $user]);
return new static($app['EM'], $feeds, $token);
}

View File

@@ -132,7 +132,7 @@ class AggregateLinkGenerator implements LinkGeneratorInterface
{
$token = $this->em
->getRepository('Alchemy\Phrasea\Model\Entities\AggregateToken')
->findOneBy(['user' => $user->getId()]);
->findOneBy(['user' => $user]);
if (null === $token || true === $renew) {
if (null === $token) {

View File

@@ -140,7 +140,7 @@ class FeedLinkGenerator implements LinkGeneratorInterface
{
$token = $this->em
->getRepository('Alchemy\Phrasea\Model\Entities\FeedToken')
->findOneBy(['user' => $user->getId(), 'feed' => $feed->getId()]);
->findOneBy(['user' => $user, 'feed' => $feed]);
if (null === $token || true === $renew) {
if (null === $token) {

View File

@@ -154,7 +154,7 @@ class Manage extends Helper
$receiver = null;
try {
$receiver = Receiver::fromUser($createdUser, $this->app['translator']);
$receiver = Receiver::fromUser($createdUser);
} catch (InvalidArgumentException $e) {
}

View File

@@ -1031,12 +1031,16 @@ class User
/**
* @return string
*/
public function getDisplayName(TranslatorInterface $translator)
public function getDisplayName(TranslatorInterface $translator = null)
{
if ($this->isTemplate()) {
if ($this->isTemplate() && $translator) {
return $translator->trans('modele %name%', ['%name%' => $this->getLogin()]);
}
if ($this->isTemplate()) {
return $this->getLogin();
}
if (trim($this->lastName) !== '' || trim($this->firstName) !== '') {
return $this->firstName . ('' !== $this->firstName && '' !== $this->lastName ? ' ' : '') . $this->lastName;
}
@@ -1045,6 +1049,10 @@ class User
return $this->email;
}
if ($translator) {
return $translator->trans('Unnamed user');
}
return 'Unnamed user';
}
}

View File

@@ -138,7 +138,7 @@ class UserManager
private function cleanFtpExports(User $user)
{
$elements = $this->objectManager->getRepository('Alchemy\Phrasea\Model\Entities\FtpExport')
->findBy(['user' => $user->getId()]);
->findBy(['user' => $user]);
foreach ($elements as $element) {
$this->objectManager->remove($element);
@@ -153,7 +153,7 @@ class UserManager
private function cleanOrders(User $user)
{
$orders = $this->objectManager->getRepository('Alchemy\Phrasea\Model\Entities\Order')
->findBy(['user' => $user->getId()]);
->findBy(['user' => $user]);
foreach ($orders as $order) {
$this->objectManager->remove($order);
@@ -168,7 +168,7 @@ class UserManager
private function cleanUserSessions(User $user)
{
$sessions = $this->objectManager->getRepository('Alchemy\Phrasea\Model\Entities\Session')
->findByUser(['user' => $user->getId()]);
->findByUser(['user' => $user]);
foreach ($sessions as $session) {
$this->objectManager->remove($session);
@@ -183,7 +183,7 @@ class UserManager
private function cleanAuthProvider(User $user)
{
$providers = $this->objectManager->getRepository('Alchemy\Phrasea\Model\Entities\UsrAuthProvider')
->findBy(['user' => $user->getId()]);
->findBy(['user' => $user]);
foreach ($providers as $provider) {
$this->objectManager->remove($provider);

View File

@@ -46,9 +46,6 @@ class NativeQueryProvider
public function getModelForUser(User $user, array $basList)
{
debug_print_backtrace(10);
echo __METHOD__;
exit;
$rsm = new ResultSetMappingBuilder($this->em);
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
@@ -70,9 +67,6 @@ class NativeQueryProvider
public function getAdminsOfBases(array $basList)
{
debug_print_backtrace(10);
echo __METHOD__;
exit;
$rsm = new ResultSetMappingBuilder($this->em);
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
$rsm->addScalarResult('base_id', 'base_id');

View File

@@ -69,6 +69,6 @@ class FtpExportRepository extends EntityRepository
*/
public function findByUser(User $user)
{
return $this->findBy(['user' => $user->getId()]);
return $this->findBy(['user' => $user]);
}
}

View File

@@ -28,14 +28,14 @@ class StoryWZRepository extends EntityRepository
public function findByUser(Application $app, User $user, $sort)
{
$dql = 'SELECT s FROM Alchemy\Phrasea\Model\Entities\StoryWZ s WHERE s.user = :usr_id ';
$dql = 'SELECT s FROM Alchemy\Phrasea\Model\Entities\StoryWZ s WHERE s.user = :user ';
if ($sort == 'date') {
$dql .= ' ORDER BY s.created DESC';
}
$query = $this->_em->createQuery($dql);
$query->setParameters(['usr_id' => $user->getId()]);
$query->setParameters(['user' => $user]);
$stories = $query->getResult();
@@ -96,13 +96,11 @@ class StoryWZRepository extends EntityRepository
public function findUserStory(Application $app, User $user, \record_adapter $Story)
{
$story = $this->findOneBy(
[
$story = $this->findOneBy([
'user' => $user->getId(),
'sbas_id' => $Story->get_sbas_id(),
'record_id' => $Story->get_record_id(),
]
);
]);
if ($story) {
try {
@@ -119,7 +117,8 @@ class StoryWZRepository extends EntityRepository
public function findByRecord(Application $app, \record_adapter $Story)
{
$dql = 'SELECT s FROM Phraseanet:StoryWZ s WHERE s.sbas_id = :sbas_id
$dql = 'SELECT s FROM Alchemy\Phrasea\Model\Entities\StoryWZ s
WHERE s.sbas_id = :sbas_id
AND s.record_id = :record_id';
$query = $this->_em->createQuery($dql);
@@ -148,9 +147,7 @@ class StoryWZRepository extends EntityRepository
$dql = 'SELECT s FROM Phraseanet:StoryWZ s WHERE s.sbas_id = :sbas_id';
$query = $this->_em->createQuery($dql);
$query->setParameters([
'sbas_id' => $databox->get_sbas_id(),
]);
$query->setParameters(['sbas_id' => $databox->get_sbas_id(),]);
$stories = $query->getResult();

View File

@@ -15,6 +15,7 @@ use Alchemy\Phrasea\Model\Entities\User;
use Alchemy\Phrasea\Model\Entities\UsrList;
use Alchemy\Phrasea\Model\Entities\UsrListEntry;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\NoResultException;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
@@ -78,12 +79,12 @@ class UsrListEntryRepository extends EntityRepository
$query = $this->_em->createQuery($dql);
$query->setParameters($params);
$entry = $query->getResult();
if (!$entry) {
throw new NotFoundHttpException('Entry not found');
try {
$entry = $query->getSingleResult();
} catch (NoResultException $e) {
throw new NotFoundHttpException('Entry not found', null, $e);
}
return $query->getSingleResult();
return $entry;
}
}

View File

@@ -70,11 +70,10 @@ class UsrListOwnerRepository extends EntityRepository
$query = $this->_em->createQuery($dql);
$query->setParameters($params);
try {
$owner = $query->getSingleResult();
/* @var $owner UsrListOwner */
if (null === $owner) {
throw new NotFoundHttpException('Owner is not found');
} catch (NoResultException $e) {
throw new NotFoundHttpException('Owner is not found', null, $e);
}
return $owner;

View File

@@ -55,8 +55,8 @@ class Emitter implements EmitterInterface
*
* @throws InvalidArgumentException In case no valid email is found for user
*/
public static function fromUser(User $user, TranslatorInterface $translator)
public static function fromUser(User $user)
{
return new static($user->getDisplayName($translator), $user->getEmail());
return new static($user->getDisplayName(), $user->getEmail());
}
}

View File

@@ -55,8 +55,8 @@ class Receiver implements ReceiverInterface
*
* @throws InvalidArgumentException In case no valid email is found for user
*/
public static function fromUser(User $user, TranslatorInterface $translator)
public static function fromUser(User $user)
{
return new static($user->getDisplayName($translator), $user->getEmail());
return new static($user->getDisplayName(), $user->getEmail());
}
}

View File

@@ -52,10 +52,9 @@ interface ControlProviderInterface
*
* @param string $query A scalar quaery
* @param User $for_user The user doing the query
* @param TranslatorInterface $translator
* @param \databox $on_databox The databox where vocabulary should be requested
*
* @return Doctrine\Common\Collections\ArrayCollection
*/
public function find($query, User $for_user, TranslatorInterface $translator, \databox $on_databox);
public function find($query, User $for_user, \databox $on_databox);
}

View File

@@ -51,7 +51,7 @@ class UserProvider implements ControlProviderInterface
* @param \databox $on_databox
* @return \Doctrine\Common\Collections\ArrayCollection
*/
public function find($query, User $for_user, TranslatorInterface $translator ,\databox $on_databox = null)
public function find($query, User $for_user,\databox $on_databox = null)
{
$user_query = new \User_Query($this->app);
@@ -69,7 +69,7 @@ class UserProvider implements ControlProviderInterface
foreach ($users as $user) {
$results->add(
new Term($user->getDisplayName($translator), '', $this, $user->getId())
new Term($user->getDisplayName($this->app['translator']), '', $this, $user->getId())
);
}

View File

@@ -9,6 +9,7 @@
* file that was distributed with this source code.
*/
use Alchemy\Phrasea\Model\Entities\Basket;
use Alchemy\Phrasea\Model\Entities\User;
use Symfony\Component\HttpFoundation\Request;
use Silex\Application;
@@ -199,7 +200,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function delete_basket(Request $request, $basket_id);
public function delete_basket(Request $request, Basket $basket);
/**
* Route : /baskets/BASKET_ID/content/FORMAT/
@@ -210,7 +211,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function get_basket(Request $request, $basket_id);
public function get_basket(Request $request, Basket $basket);
/**
* Route : /baskets/BASKET_ID/title/FORMAT/
@@ -221,7 +222,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function set_basket_title(Request $request, $basket_id);
public function set_basket_title(Request $request, Basket $basket);
/**
* Route : /baskets/BASKET_ID/description/FORMAT/
@@ -232,7 +233,7 @@ interface API_V1_Interface
* BASKET_ID : required INT
*
*/
public function set_basket_description(Request $request, $basket_id);
public function set_basket_description(Request $request, Basket $basket);
/**
* Route : /publications/list/FORMAT/

View File

@@ -1287,17 +1287,12 @@ class API_V1_adapter extends API_V1_Abstract
* Delete a basket
*
* @param Request $request
* @param int $basket_id
* @param Basket $basket
* @return array
*/
public function delete_basket(Request $request, $basket_id)
public function delete_basket(Request $request, Basket $basket)
{
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
/* @var $repository Alchemy\Phrasea\Model\Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->app, $basket_id, $this->app['authentication']->getUser(), true);
$this->app['EM']->remove($Basket);
$this->app['EM']->remove($basket);
$this->app['EM']->flush();
return $this->search_baskets($request);
@@ -1307,23 +1302,17 @@ class API_V1_adapter extends API_V1_Abstract
* Retrieve a basket
*
* @param Request $request
* @param int $basket_id
* @param Basket $basket
* @return API_V1_result
*/
public function get_basket(Request $request, $basket_id)
public function get_basket(Request $request, Basket $basket)
{
$result = new API_V1_result($this->app, $request, $this);
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
/* @var $repository Alchemy\Phrasea\Model\Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->app, $basket_id, $this->app['authentication']->getUser(), false);
$result->set_datas(
[
"basket" => $this->list_basket($Basket),
"basket_elements" => $this->list_basket_content($Basket)
"basket" => $this->list_basket($basket),
"basket_elements" => $this->list_basket_content($basket)
]
);
@@ -1404,26 +1393,19 @@ class API_V1_adapter extends API_V1_Abstract
* Change the name of one basket
*
* @param Request $request
* @param int $basket_id
* @param Basket $basket
* @return API_V1_result
*/
public function set_basket_title(Request $request, $basket_id)
public function set_basket_title(Request $request, Basket $basket)
{
$result = new API_V1_result($this->app, $request, $this);
$name = $request->get('name');
$basket->setName($request->get('name'));
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
/* @var $repository Alchemy\Phrasea\Model\Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->app, $basket_id, $this->app['authentication']->getUser(), true);
$Basket->setName($name);
$this->app['EM']->merge($Basket);
$this->app['EM']->persist($basket);
$this->app['EM']->flush();
$result->set_datas(["basket" => $this->list_basket($Basket)]);
$result->set_datas(["basket" => $this->list_basket($basket)]);
return $result;
}
@@ -1432,26 +1414,19 @@ class API_V1_adapter extends API_V1_Abstract
* Change the description of one basket
*
* @param Request $request
* @param type $basket_id
* @param Basket $basket
* @return API_V1_result
*/
public function set_basket_description(Request $request, $basket_id)
public function set_basket_description(Request $request, Basket $basket)
{
$result = new API_V1_result($this->app, $request, $this);
$desc = $request->get('description');
$basket->setDescription($request->get('description'));
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
/* @var $repository Alchemy\Phrasea\Model\Repositories\BasketRepository */
$Basket = $repository->findUserBasket($this->app, $basket_id, $this->app['authentication']->getUser(), true);
$Basket->setDescription($desc);
$this->app['EM']->merge($Basket);
$this->app['EM']->persist($basket);
$this->app['EM']->flush();
$result->set_datas(["basket" => $this->list_basket($Basket)]);
$result->set_datas(["basket" => $this->list_basket($basket)]);
return $result;
}

View File

@@ -172,7 +172,7 @@ class eventsmanager_notify_autoregister extends eventsmanager_notifyAbstract
$readyToSend = false;
try {
$receiver = Receiver::fromUser($to, $this->app['translator']);
$receiver = Receiver::fromUser($to);
$readyToSend = true;
} catch (Exception $e) {

View File

@@ -81,7 +81,7 @@ class eventsmanager_notify_bridgeuploadfail extends eventsmanager_notifyAbstract
try {
$user = $this->app['manipulator.user']->getRepository()->find($params['usr_id']);
$account = Bridge_Account::load_account($this->app, $params['account_id']);
$receiver = Receiver::fromUser($user, $this->app['translator']);
$receiver = Receiver::fromUser($user);
$readyToSend = true;
} catch (\Exception $e) {

View File

@@ -97,7 +97,7 @@ class eventsmanager_notify_feed extends eventsmanager_notifyAbstract
$url = $this->app->url('lightbox', ['LOG' => $token]);
$receiver = Receiver::fromUser($user_to_notif, $this->app['translator']);
$receiver = Receiver::fromUser($user_to_notif);
$readyToSend = true;
} catch (\Exception $e) {

View File

@@ -102,7 +102,7 @@ class eventsmanager_notify_order extends eventsmanager_notifyAbstract
if ($this->shouldSendNotificationFor($user->getId())) {
$readyToSend = false;
try {
$receiver = Receiver::fromUser($user, $this->app['translator']);
$receiver = Receiver::fromUser($user);
$readyToSend = true;
} catch (\Exception $e) {
continue;

View File

@@ -95,8 +95,8 @@ class eventsmanager_notify_orderdeliver extends eventsmanager_notifyAbstract
$user_from = $this->app['manipulator.user']->getRepository()->find($params['from']);
$user_to = $this->app['manipulator.user']->getRepository()->find($params['to']);
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
$receiver = Receiver::fromUser($user_to);
$emitter = Emitter::fromUser($user_from);
$repository = $this->app['EM']->getRepository('Phraseanet:Basket');
$basket = $repository->find($params['ssel_id']);

View File

@@ -78,8 +78,8 @@ class eventsmanager_notify_ordernotdelivered extends eventsmanager_notifyAbstrac
$user_from = $this->app['manipulator.user']->getRepository()->find($params['from']);
$user_to = $this->app['manipulator.user']->getRepository()->find($params['to']);
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
$receiver = Receiver::fromUser($user_to);
$emitter = Emitter::fromUser($user_from);
$readyToSend = true;
} catch (Exception $e) {

View File

@@ -86,8 +86,8 @@ class eventsmanager_notify_push extends eventsmanager_notifyAbstract
$user_from = $this->app['manipulator.user']->getRepository()->find($params['from']);
$user_to = $this->app['manipulator.user']->getRepository()->find($params['to']);
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
$receiver = Receiver::fromUser($user_to);
$emitter = Emitter::fromUser($user_from);
$readyToSend = true;
} catch (\Exception $e) {

View File

@@ -103,7 +103,7 @@ class eventsmanager_notify_register extends eventsmanager_notifyAbstract
$readyToSend = false;
try {
$admin_user = $this->app['manipulator.user']->getRepository()->find($usr_id);
$receiver = Receiver::fromUser($admin_user, $this->app['translator']);
$receiver = Receiver::fromUser($admin_user);
$readyToSend = true;
} catch (\Exception $e) {
continue;

View File

@@ -109,7 +109,7 @@ class eventsmanager_notify_uploadquarantine extends eventsmanager_notifyAbstract
if ($this->shouldSendNotificationFor($user->getId())) {
$readyToSend = false;
try {
$receiver = Receiver::fromUser($user, $this->app['translator']);
$receiver = Receiver::fromUser($user);
$readyToSend = true;
} catch (\Exception $e) {

View File

@@ -101,8 +101,8 @@ class eventsmanager_notify_validate extends eventsmanager_notifyAbstract
->find($params['ssel_id']);
$title = $basket->getName();
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
$receiver = Receiver::fromUser($user_to);
$emitter = Emitter::fromUser($user_from);
$readyToSend = true;
} catch (\Exception $e) {

View File

@@ -96,8 +96,8 @@ class eventsmanager_notify_validationdone extends eventsmanager_notifyAbstract
->find($params['ssel_id']);
$title = $basket->getName();
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
$receiver = Receiver::fromUser($user_to);
$emitter = Emitter::fromUser($user_from);
$readyToSend = true;
} catch (\Exception $e) {

View File

@@ -102,8 +102,8 @@ class eventsmanager_notify_validationreminder extends eventsmanager_notifyAbstra
->find($params['ssel_id']);
$title = $basket->getName();
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
$receiver = Receiver::fromUser($user_to);
$emitter = Emitter::fromUser($user_from);
$readyToSend = true;
} catch (\Exception $e) {

View File

@@ -7,6 +7,7 @@ use Alchemy\Phrasea\Border\File;
use Alchemy\Phrasea\Core\PhraseaEvents;
use Alchemy\Phrasea\Authentication\Context;
use Alchemy\Phrasea\Model\Entities\Task;
use Alchemy\Phrasea\Model\Entities\LazaretSession;
use Doctrine\Common\Collections\ArrayCollection;
use Guzzle\Common\Exception\GuzzleException;
use Symfony\Component\HttpKernel\Client;
@@ -1926,7 +1927,7 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
protected function getQuarantineItem()
{
$lazaretSession = new \Alchemy\Phrasea\Model\Entities\LazaretSession();
$lazaretSession = new LazaretSession();
self::$DI['app']['EM']->persist($lazaretSession);
$quarantineItem = null;

View File

@@ -34,9 +34,7 @@ class AuthenticatorTest extends \PhraseanetTestCase
$app['session'] = $session = $this->getSessionMock();
$app['EM'] = $em = $this->getEntityManagerMock();
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$authenticator = new Authenticator($app, $browser, $session, $em);
$authenticator->setUser($user);
@@ -57,9 +55,7 @@ class AuthenticatorTest extends \PhraseanetTestCase
$app['session'] = $session = $this->getSessionMock();
$app['EM'] = $em = $this->getEntityManagerMock();
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getId')
->will($this->returnvalue(self::$DI['user']->getId()));

View File

@@ -14,9 +14,7 @@ class ManagerTest extends \PhraseanetTestCase
$authenticator = $this->getAuthenticatorMock();
$providers = $this->getProvidersMock();
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$session = $this->getMock('Alchemy\Phrasea\Model\Entities\Session');

View File

@@ -14,7 +14,7 @@ class NativeAuthenticationTest extends \PhraseanetTestCase
$oldEncoder = $this->getOldEncoderMock();
$request = $this->getRequestMock();
$specialUser = $this->getMock('Alchemy\Phrasea\Model\Entities\User');
$specialUser = $this->createUserMock();
$specialUser->expects($this->any())->method('isSpecial')->will($this->returnValue(true));
$manipulator = $this->getUserManipulatorMock($specialUser);
@@ -40,7 +40,7 @@ class NativeAuthenticationTest extends \PhraseanetTestCase
$oldEncoder = $this->getOldEncoderMock();
$request = $this->getRequestMock();
$mailLockedUser = $this->getMock('Alchemy\Phrasea\Model\Entities\User');
$mailLockedUser = $this->createUserMock();
$mailLockedUser->expects($this->any())->method('isMailLocked')->will($this->returnValue(true));
$manipulator = $this->getUserManipulatorMock($mailLockedUser);
@@ -66,7 +66,7 @@ class NativeAuthenticationTest extends \PhraseanetTestCase
$oldEncoder = $this->getOldEncoderMock();
$request = $this->getRequestMock();
$user = $this->getMock('Alchemy\Phrasea\Model\Entities\User');
$user = $this->createUserMock();
$user->expects($this->any())->method('getId')->will($this->returnValue($userId));
$user->expects($this->any())->method('isSpecial')->will($this->returnValue(false));
@@ -101,7 +101,7 @@ class NativeAuthenticationTest extends \PhraseanetTestCase
$oldEncoder = $this->getOldEncoderMock();
$request = $this->getRequestMock();
$user = $this->getMock('Alchemy\Phrasea\Model\Entities\User');
$user = $this->createUserMock();
$user->expects($this->any())->method('getId')->will($this->returnValue($userId));
$user->expects($this->any())->method('isSpecial')->will($this->returnValue(false));
@@ -136,7 +136,7 @@ class NativeAuthenticationTest extends \PhraseanetTestCase
$oldEncoder = $this->getOldEncoderMock();
$request = $this->getRequestMock();
$user = $this->getMock('Alchemy\Phrasea\Model\Entities\User');
$user = $this->createUserMock();
$user->expects($this->any())->method('getId')->will($this->returnValue($userId));
$user->expects($this->any())->method('isSpecial')->will($this->returnValue(false));
@@ -173,7 +173,7 @@ class NativeAuthenticationTest extends \PhraseanetTestCase
$oldEncoder = $this->getOldEncoderMock();
$request = $this->getRequestMock();
$user = $this->getMock('Alchemy\Phrasea\Model\Entities\User');
$user = $this->createUserMock();
$user->expects($this->any())->method('getId')->will($this->returnValue($userId));
$user->expects($this->any())->method('isSpecial')->will($this->returnValue(false));

View File

@@ -52,10 +52,7 @@ class DownloadTest extends \PhraseanetAuthenticatedWebTestCase
self::$DI['app']['events-manager'] = $eventManagerStub;
self::$DI['app']['authentication']->setUser($this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->setMethods(['ACL'])
->disableOriginalConstructor()
->getMock());
self::$DI['app']['authentication']->setUser($this->createUserMock());
$stubbedACL = $this->getMockBuilder('\ACL')
->disableOriginalConstructor()

View File

@@ -1074,7 +1074,7 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
self::$DI['client']->request('POST', '/login/register-classic/', $parameters);
if (null === $user = $user= self::$DI['app']['manipulator.user']->getRepository()->findByEmail($parameters['email'])) {
if (null === $user = self::$DI['app']['manipulator.user']->getRepository()->findByEmail($parameters['email'])) {
$this->fail('User not created');
}
$this->assertTrue(self::$DI['client']->getResponse()->isRedirect());

View File

@@ -106,9 +106,7 @@ class SetupTest extends \PhraseanetWebTestCase
->disableOriginalConstructor()
->getMock();
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->once())
->method('getId')

View File

@@ -47,7 +47,7 @@ class DisplaySettingServiceTest extends \PhraseanetTestCase
'lalala' => 'didou',
]);
$user = $this->getMock('Alchemy\Phrasea\Model\Entities\User');
$user = $this->createUserMock();
$user->expects($this->any())->method('getSettings')->will($this->returnValue(new ArrayCollection()));
$this->assertNull(self::$DI['app']['settings']->getUserSetting($user, 'lalala'));

View File

@@ -156,7 +156,7 @@ class AuthenticationManagerServiceProviderTest extends ServiceProviderTestCase
return $u->getLogin();
}, self::$DI['app']['authentication.providers.account-creator']->getTemplates()));
self::$DI['app']['model.user-manager']->delete($template1);
self::$DI['app']['model.user-manager']->delete($template2);
$this->removeUser(self::$DI['app'], $template1);
$this->removeUser(self::$DI['app'], $template2);
}
}

View File

@@ -86,6 +86,6 @@ class ACLManipulatorTest extends \PhraseanetTestCase
$this->assertEquals(0, $acl->get_limits($acl->get_mask_xor($baseId)));
$this->assertEquals(0, $acl->get_limits($acl->get_mask_and($baseId)));
self::$DI['app']['model.user-manager']->delete($user);
$this->removeUser(self::$DI['app'], $user);
}
}

View File

@@ -42,9 +42,7 @@ class EmitterTest extends \PhraseanetTestCase
*/
public function testFromUser()
{
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')
@@ -54,7 +52,7 @@ class EmitterTest extends \PhraseanetTestCase
->method('getEmail')
->will($this->returnValue($this->email));
$object = Emitter::fromUser($user, self::$DI['app']['translator']);
$object = Emitter::fromUser($user);
$this->assertEquals($this->email, $object->getEmail());
$this->assertEquals($this->name, $object->getName());
}
@@ -64,9 +62,7 @@ class EmitterTest extends \PhraseanetTestCase
*/
public function testFromUserFails()
{
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')
@@ -77,7 +73,7 @@ class EmitterTest extends \PhraseanetTestCase
->will($this->returnValue('wrong email'));
try {
Emitter::fromUser($user, self::$DI['app']['translator']);
Emitter::fromUser($user);
$this->fail('Should have raised an exception');
} catch (InvalidArgumentException $e) {

View File

@@ -41,9 +41,7 @@ class MailInfoNewOrderTest extends MailTestCase
$this->getMessage()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')

View File

@@ -29,9 +29,7 @@ class MailInfoOrderCancelledTest extends MailTestCase
$this->getMessage()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')
@@ -74,9 +72,7 @@ class MailInfoOrderCancelledTest extends MailTestCase
$this->getMessage()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')

View File

@@ -53,9 +53,7 @@ class MailInfoOrderDeliveredTest extends MailTestCase
$this->getMessage()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')
@@ -88,9 +86,7 @@ class MailInfoOrderDeliveredTest extends MailTestCase
->method('getId')
->will($this->returnValue(42));
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')

View File

@@ -28,9 +28,7 @@ class MailInfoPushReceivedTest extends MailWithLinkTestCase
$this->getExpiration()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getFirstName')
@@ -110,9 +108,7 @@ class MailInfoPushReceivedTest extends MailWithLinkTestCase
->method('getElements')
->will($this->returnValue($collection));
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')

View File

@@ -46,9 +46,7 @@ class MailInfoUserRegisteredTest extends MailTestCase
$this->getMessage()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getFirstName')

View File

@@ -38,9 +38,7 @@ class MailInfoValidationDoneTest extends MailWithLinkTestCase
$this->getExpiration()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')
@@ -95,9 +93,7 @@ class MailInfoValidationDoneTest extends MailWithLinkTestCase
$this->getExpiration()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')

View File

@@ -47,9 +47,7 @@ class MailInfoValidationRequestTest extends MailWithLinkTestCase
$this->getExpiration()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')
@@ -81,9 +79,7 @@ class MailInfoValidationRequestTest extends MailWithLinkTestCase
$this->getExpiration()
);
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')

View File

@@ -42,9 +42,7 @@ class ReceiverTest extends \PhraseanetTestCase
*/
public function testFromUser()
{
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')
@@ -54,7 +52,7 @@ class ReceiverTest extends \PhraseanetTestCase
->method('getEmail')
->will($this->returnValue($this->email));
$object = Receiver::fromUser($user, self::$DI['app']['translator']);
$object = Receiver::fromUser($user);
$this->assertEquals($this->email, $object->getEmail());
$this->assertEquals($this->name, $object->getName());
}
@@ -64,9 +62,7 @@ class ReceiverTest extends \PhraseanetTestCase
*/
public function testFromUserFailed()
{
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
->disableOriginalConstructor()
->getMock();
$user = $this->createUserMock();
$user->expects($this->any())
->method('getDisplayName')
@@ -77,7 +73,7 @@ class ReceiverTest extends \PhraseanetTestCase
->will($this->returnValue('wrong user'));
try {
Receiver::fromUser($user, self::$DI['app']['translator']);
Receiver::fromUser($user);
$this->fail('Should have raised an exception');
} catch (InvalidArgumentException $e) {

View File

@@ -3,6 +3,7 @@
namespace Alchemy\Tests\Phrasea\Vocabulary\ControlProvider;
use Alchemy\Phrasea\Vocabulary\ControlProvider\UserProvider;
use Doctrine\ORM\EntityManager;
class UserProviderTest extends \PhraseanetTestCase
{
@@ -39,29 +40,31 @@ class UserProviderTest extends \PhraseanetTestCase
public function testFind()
{
self::$DI['app']['EM'] = self::$DI['app']['EM.prod'];
$user = self::$DI['app']['manipulator.user']->createUser(uniqid('test'), 'a_password', uniqid('test').'@titi.tu');
// mandatory until user rights are managed by doctrine
self::$DI['app']['EM'] = EntityManager::create(self::$DI['app']['conf']->get(['main', 'database']), self::$DI['app']['EM.config'], self::$DI['app']['EM.events-manager']);
$user = self::$DI['app']['manipulator.user']->createUser(uniqid('test'), 'a_password', uniqid('test').'@domain.fr');
self::giveRightsToUser(self::$DI['app'], $user);
$user->setFirstName('toto');
$user->setLastName('tata');
$user->setFirstName('John');
$user->setLastName('Doe');
self::$DI['app']['EM']->persist($user);
self::$DI['app']['EM']->flush();
$results = $this->object->find('BABE', $user, self::$DI['app']['translator'], self::$DI['collection']->get_databox());
$results = $this->object->find('BABE', $user, self::$DI['collection']->get_databox());
$this->assertInstanceOf('\\Doctrine\\Common\\Collections\\ArrayCollection', $results);
$results = $this->object->find($user->getEmail(), $user,self::$DI['app']['translator'], self::$DI['collection']->get_databox());
$results = $this->object->find($user->getEmail(), $user, self::$DI['collection']->get_databox());
$this->assertInstanceOf('\\Doctrine\\Common\\Collections\\ArrayCollection', $results);
$this->assertTrue($results->count() > 0);
$results = $this->object->find($user->getFirstName(), $user, self::$DI['app']['translator'], self::$DI['collection']->get_databox());
$results = $this->object->find($user->getFirstName(), $user, self::$DI['collection']->get_databox());
$this->assertInstanceOf('\\Doctrine\\Common\\Collections\\ArrayCollection', $results);
$this->assertTrue($results->count() > 0);
$results = $this->object->find($user->getLastName(), $user, self::$DI['app']['translator'], self::$DI['collection']->get_databox());
$results = $this->object->find($user->getLastName(), $user, self::$DI['collection']->get_databox());
$this->assertInstanceOf('\\Doctrine\\Common\\Collections\\ArrayCollection', $results);
$this->assertTrue($results->count() > 0);

View File

@@ -5,7 +5,6 @@ use Alchemy\Phrasea\Application;
use Alchemy\Phrasea\Border\File;
use Alchemy\Phrasea\Model\Entities\Session;
use Alchemy\Phrasea\Model\Entities\User;
use Doctrine\ORM\EntityManager;
use Monolog\Logger;
use Monolog\Handler\NullHandler;
use Silex\WebTestCase;
@@ -14,6 +13,7 @@ use Symfony\Component\HttpKernel\Client;
use Symfony\Component\DomCrawler\Crawler;
use Symfony\Component\Routing\RequestContext;
use Alchemy\Tests\Tools\TranslatorMockTrait;
use Alchemy\Phrasea\Authentication\ACLProvider;
use Guzzle\Http\Client as Guzzle;
abstract class PhraseanetTestCase extends WebTestCase
@@ -287,33 +287,11 @@ abstract class PhraseanetTestCase extends WebTestCase
->method('getSubscribedEvents')
->will($this->returnValue([]));
$app['translator'] = $this->createTranslatorMock();
$app['EM'] = $app->share(function ($app) {
return $app['EM.test'];
});
$app['EM.test'] = $app->share(function ($app) {
$app['EM'] = $app->share($app->extend('EM', function ($em) {
$this->initializeSqliteDB();
try {
$em = EntityManager::create($app['conf']->get(['main', 'database-test']), $app['EM.config'], $app['EM.events-manager']);
} catch (\Exception $e) {
throw new RuntimeException("Unable to create database connection", $e->getCode(), $e);
}
return $em;
});
$app['EM.prod'] = $app->share(function ($app) {
try {
$em = EntityManager::create($app['conf']->get(['main', 'database']), $app['EM.config'], $app['EM.events-manager']);
} catch (\Exception $e) {
throw new RuntimeException("Unable to create database connection", $e->getCode(), $e);
}
return $em;
});
}));
$app['browser'] = $app->share($app->extend('browser', function ($browser) {
$browser->setUserAgent(self::USER_AGENT_FIREFOX8MAC);
@@ -334,7 +312,7 @@ abstract class PhraseanetTestCase extends WebTestCase
public function tearDown()
{
\Alchemy\Phrasea\Authentication\ACLProvider::purge();
ACLProvider::purge();
\collection::purge();
\databox::purge();
\caption_field::purge();
@@ -342,7 +320,6 @@ abstract class PhraseanetTestCase extends WebTestCase
\databox_field::purge();
\databox_status::purge();
\thesaurus_xpath::purge();
\User_Adapter::purge();
/**
* Kris Wallsmith pro-tip
@@ -635,4 +612,15 @@ abstract class PhraseanetTestCase extends WebTestCase
->disableOriginalConstructor()
->getMock();
}
public function createUserMock()
{
return $this->getMock('Alchemy\Phrasea\Model\Entities\User');
}
public function removeUser(Application $app, User $user)
{
$app['EM']->remove($user);
$app['EM']->flush();
}
}

View File

@@ -1071,7 +1071,7 @@ class User extends \Alchemy\Phrasea\Model\Entities\User implements \Doctrine\ORM
/**
* {@inheritDoc}
*/
public function getDisplayName(\Symfony\Component\Translation\TranslatorInterface $translator)
public function getDisplayName(\Symfony\Component\Translation\TranslatorInterface $translator = NULL)
{
$this->__initializer__ && $this->__initializer__->__invoke($this, 'getDisplayName', array($translator));