mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
110 lines
3.4 KiB
PHP
110 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace Alchemy\Tests\Phrasea\Vocabulary\ControlProvider;
|
|
|
|
use Alchemy\Phrasea\Vocabulary\ControlProvider\UserProvider;
|
|
|
|
/**
|
|
* @group functional
|
|
* @group legacy
|
|
*/
|
|
class UserProviderTest extends \PhraseanetTestCase
|
|
{
|
|
/**
|
|
* @var UserProvider
|
|
*/
|
|
protected $object;
|
|
|
|
public function setUp()
|
|
{
|
|
parent::setUp();
|
|
$this->object = new UserProvider(self::$DI['app']);
|
|
}
|
|
|
|
/**
|
|
* Verify that Type is scalar and that the classname is like {Type}Provider
|
|
*/
|
|
public function testGetType()
|
|
{
|
|
$type = $this->object->getType();
|
|
|
|
$this->assertTrue(is_scalar($type));
|
|
|
|
$data = explode('\\', get_class($this->object));
|
|
$classname = array_pop($data);
|
|
|
|
$this->assertEquals($classname, $type . 'Provider');
|
|
}
|
|
|
|
public function testGetName()
|
|
{
|
|
$this->assertTrue(is_scalar($this->object->getName()));
|
|
}
|
|
|
|
public function testFind()
|
|
{
|
|
// mandatory until user rights are managed by doctrine
|
|
//self::$DI['app']['orm.em'] = EntityManager::create(self::$DI['app']['conf']->get(['main', 'database']), self::$DI['app']['db.config'], self::$DI['app']['db.event_manager']);
|
|
|
|
$app = $this->getApplication();
|
|
$params = $app['db.appbox.info'];
|
|
$info = $app['db.info']($params);
|
|
$key = $app['orm.add']($info);
|
|
|
|
self::$DI['app']['orm.em'] = $app['orm.ems'][$key];
|
|
|
|
$user = self::$DI['app']['manipulator.user']->createUser(uniqid('test'), 'a_password', uniqid('test').'@domain.fr');
|
|
self::giveRightsToUser(self::$DI['app'], $user);
|
|
$user->setFirstName('John');
|
|
$user->setLastName('Doe');
|
|
self::$DI['app']['orm.em']->persist($user);
|
|
self::$DI['app']['orm.em']->flush();
|
|
|
|
$results = $this->object->find('BABE', $user, self::$DI['collection']->get_databox());
|
|
|
|
$this->assertInternalType('array', $results);
|
|
|
|
$results = $this->object->find($user->getEmail(), $user, self::$DI['collection']->get_databox());
|
|
|
|
$this->assertInternalType('array', $results);
|
|
$this->assertGreaterThan(0, count($results), 'There should be more users matching');
|
|
|
|
$results = $this->object->find($user->getFirstName(), $user, self::$DI['collection']->get_databox());
|
|
|
|
$this->assertInternalType('array', $results);
|
|
$this->assertGreaterThan(0, count($results), 'There should be more users matching');
|
|
|
|
$results = $this->object->find($user->getLastName(), $user, self::$DI['collection']->get_databox());
|
|
|
|
$this->assertInternalType('array', $results);
|
|
$this->assertGreaterThan(0, count($results), 'There should be more users matching');
|
|
self::$DI['app']['manipulator.user']->delete($user);
|
|
}
|
|
|
|
public function testValidate()
|
|
{
|
|
$this->assertFalse($this->object->validate(-200));
|
|
$this->assertFalse($this->object->validate('A'));
|
|
$this->assertTrue($this->object->validate(self::$DI['user']->getId()));
|
|
}
|
|
|
|
public function testGetValue()
|
|
{
|
|
try {
|
|
$this->object->getValue(-200);
|
|
$this->fail('Should raise an exception');
|
|
} catch (\Exception $e) {
|
|
|
|
}
|
|
|
|
try {
|
|
$this->object->getValue('A');
|
|
$this->fail('Should raise an exception');
|
|
} catch (\Exception $e) {
|
|
|
|
}
|
|
|
|
$this->assertEquals(self::$DI['user']->getDisplayName(), $this->object->getValue(self::$DI['user']->getId()));
|
|
}
|
|
}
|