mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-18 07:23:13 +00:00
Fix failing enable/disable collection tests
This commit is contained in:
@@ -45,9 +45,6 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
private static $_stamps = [];
|
private static $_stamps = [];
|
||||||
private static $_watermarks = [];
|
private static $_watermarks = [];
|
||||||
private static $_presentations = [];
|
private static $_presentations = [];
|
||||||
private static $_collections = [];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Application $app
|
* @param Application $app
|
||||||
@@ -110,6 +107,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$collection
|
$collection
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
return $reference->getBaseId();
|
return $reference->getBaseId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,7 +167,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
|
|
||||||
public static function purge()
|
public static function purge()
|
||||||
{
|
{
|
||||||
self::$_collections = [];
|
// BC only
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -260,6 +258,11 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
*/
|
*/
|
||||||
protected $collectionVO;
|
protected $collectionVO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var CollectionRepositoryRegistry
|
||||||
|
*/
|
||||||
|
protected $collectionRepositoryRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var CollectionReference
|
* @var CollectionReference
|
||||||
*/
|
*/
|
||||||
@@ -278,6 +281,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$this->app = $app;
|
$this->app = $app;
|
||||||
$this->databox = $app->getApplicationBox()->get_databox($reference->getDataboxId());
|
$this->databox = $app->getApplicationBox()->get_databox($reference->getDataboxId());
|
||||||
$this->collectionService = $app->getApplicationBox()->getCollectionService();
|
$this->collectionService = $app->getApplicationBox()->getCollectionService();
|
||||||
|
$this->collectionRepositoryRegistry = $app['repo.collections-registry'];
|
||||||
|
|
||||||
$this->collectionVO = $collection;
|
$this->collectionVO = $collection;
|
||||||
$this->reference = $reference;
|
$this->reference = $reference;
|
||||||
@@ -317,10 +321,19 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
|
|
||||||
public function __sleep()
|
public function __sleep()
|
||||||
{
|
{
|
||||||
return array(
|
return [
|
||||||
'collectionVO',
|
'collectionVO',
|
||||||
'reference'
|
'reference'
|
||||||
);
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __debugInfo()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'reference' => $this->reference,
|
||||||
|
'databox' => $this->databox,
|
||||||
|
'collectionVO' => $this->collectionVO
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -472,7 +485,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
*/
|
*/
|
||||||
public function get_base_id()
|
public function get_base_id()
|
||||||
{
|
{
|
||||||
return $this->reference->getBaseId();
|
return (int) $this->reference->getBaseId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -480,7 +493,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
*/
|
*/
|
||||||
public function get_sbas_id()
|
public function get_sbas_id()
|
||||||
{
|
{
|
||||||
return $this->reference->getDataboxId();
|
return (int) $this->reference->getDataboxId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -488,7 +501,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
*/
|
*/
|
||||||
public function get_coll_id()
|
public function get_coll_id()
|
||||||
{
|
{
|
||||||
return $this->reference->getCollectionId();
|
return (int) $this->reference->getCollectionId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -565,11 +578,11 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$this->reference->disable();
|
$this->reference->disable();
|
||||||
|
|
||||||
$this->getReferenceRepository()->save($this->reference);
|
$this->getReferenceRepository()->save($this->reference);
|
||||||
$this->app['repo.collections-registry']->purgeRegistry();
|
$this->collectionRepositoryRegistry->purgeRegistry();
|
||||||
|
|
||||||
cache_databox::update($this->app, $this->databox->get_sbas_id(), 'structure');
|
cache_databox::update($this->app, $this->databox->get_sbas_id(), 'structure');
|
||||||
|
|
||||||
$this->dispatch(CollectionEvents::DISABLED, new DisabledEvent($this));
|
$this->dispatch(CollectionEvents::DISABLED, new DisabledEvent($this));
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -582,11 +595,11 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$this->reference->enable();
|
$this->reference->enable();
|
||||||
|
|
||||||
$this->getReferenceRepository()->save($this->reference);
|
$this->getReferenceRepository()->save($this->reference);
|
||||||
$this->app['repo.collections-registry']->purgeRegistry();
|
$this->collectionRepositoryRegistry->purgeRegistry();
|
||||||
|
|
||||||
cache_databox::update($this->app, $this->databox->get_sbas_id(), 'structure');
|
cache_databox::update($this->app, $this->databox->get_sbas_id(), 'structure');
|
||||||
|
|
||||||
$this->dispatch(CollectionEvents::ENABLED, new EnabledEvent($this));
|
$this->dispatch(CollectionEvents::ENABLED, new EnabledEvent($this));
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -659,7 +672,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$this->collectionVO->setLogo($fileContents);
|
$this->collectionVO->setLogo($fileContents);
|
||||||
|
|
||||||
$this->getCollectionRepository()->save($this->collectionVO);
|
$this->getCollectionRepository()->save($this->collectionVO);
|
||||||
$this->app['repo.collections-registry']->purgeRegistry();
|
$this->collectionRepositoryRegistry->purgeRegistry();
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -673,7 +686,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$this->collectionService->resetWatermark($this->collectionVO);
|
$this->collectionService->resetWatermark($this->collectionVO);
|
||||||
|
|
||||||
$this->getCollectionRepository()->save($this->collectionVO);
|
$this->getCollectionRepository()->save($this->collectionVO);
|
||||||
$this->app['repo.collections-registry']->purgeRegistry();
|
$this->collectionRepositoryRegistry->purgeRegistry();
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -688,7 +701,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$this->collectionService->resetStamp($this->collectionVO, $record_id);
|
$this->collectionService->resetStamp($this->collectionVO, $record_id);
|
||||||
|
|
||||||
$this->getCollectionRepository()->save($this->collectionVO);
|
$this->getCollectionRepository()->save($this->collectionVO);
|
||||||
$this->app['repo.collections-registry']->purgeRegistry();
|
$this->collectionRepositoryRegistry->purgeRegistry();
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -703,7 +716,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$this->getCollectionRepository()->delete($this->collectionVO);
|
$this->getCollectionRepository()->delete($this->collectionVO);
|
||||||
|
|
||||||
$this->app['manipulator.registration']->deleteRegistrationsOnCollection($this);
|
$this->app['manipulator.registration']->deleteRegistrationsOnCollection($this);
|
||||||
$this->app['repo.collections-registry']->purgeRegistry();
|
$this->collectionRepositoryRegistry->purgeRegistry();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -720,7 +733,7 @@ class collection implements ThumbnailedElement, cache_cacheableInterface
|
|||||||
$this->getReferenceRepository()->delete($this->reference);
|
$this->getReferenceRepository()->delete($this->reference);
|
||||||
|
|
||||||
$this->app['manipulator.registration']->deleteRegistrationsOnCollection($this);
|
$this->app['manipulator.registration']->deleteRegistrationsOnCollection($this);
|
||||||
$this->app['repo.collections-registry']->purgeRegistry();
|
$this->collectionRepositoryRegistry->purgeRegistry();
|
||||||
|
|
||||||
$this->dispatch(
|
$this->dispatch(
|
||||||
CollectionEvents::UNMOUNTED,
|
CollectionEvents::UNMOUNTED,
|
||||||
|
@@ -178,17 +178,13 @@ class databox extends base implements ThumbnailedElement
|
|||||||
*/
|
*/
|
||||||
public function get_collections()
|
public function get_collections()
|
||||||
{
|
{
|
||||||
static $collections;
|
/** @var CollectionRepositoryRegistry $repositoryRegistry */
|
||||||
|
$repositoryRegistry = $this->app['repo.collections-registry'];
|
||||||
|
$repository = $repositoryRegistry->getRepositoryByDatabox($this->get_sbas_id());
|
||||||
|
|
||||||
if ($collections === null) {
|
return array_filter($repository->findAll(), function (collection $collection) {
|
||||||
/** @var CollectionRepositoryRegistry $repositoryRegistry */
|
return $collection->is_active();
|
||||||
$repositoryRegistry = $this->app['repo.collections-registry'];
|
});
|
||||||
$repository = $repositoryRegistry->getRepositoryByDatabox($this->get_sbas_id());
|
|
||||||
|
|
||||||
$collections = $repository->findAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $collections;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -23,29 +23,29 @@ class collectionTest extends \PhraseanetTestCase
|
|||||||
parent::setup();
|
parent::setup();
|
||||||
|
|
||||||
if (!self::$object) {
|
if (!self::$object) {
|
||||||
if (0 === count($databoxes = self::$DI['app']->getDataboxes())) {
|
if (0 === count($databoxes = $this->getApplication()->getDataboxes())) {
|
||||||
$this->fail('No databox found for collection test');
|
$this->fail('No databox found for collection test');
|
||||||
}
|
}
|
||||||
|
|
||||||
$databox = array_shift($databoxes);
|
$databox = array_shift($databoxes);
|
||||||
|
|
||||||
self::$object = collection::create(
|
self::$object = collection::create(
|
||||||
self::$DI['app'],
|
$this->getApplication(),
|
||||||
$databox,
|
$databox,
|
||||||
self::$DI['app']['phraseanet.appbox'],
|
$this->getApplication()['phraseanet.appbox'],
|
||||||
'test_collection',
|
'test_collection',
|
||||||
self::$DI['user']
|
self::$DI['user']
|
||||||
);
|
);
|
||||||
|
|
||||||
self::$objectDisable = collection::create(
|
self::$objectDisable = collection::create(
|
||||||
self::$DI['app'],
|
$this->getApplication(),
|
||||||
$databox,
|
$databox,
|
||||||
self::$DI['app']['phraseanet.appbox'],
|
$this->getApplication()['phraseanet.appbox'],
|
||||||
'test_collection',
|
'test_collection',
|
||||||
self::$DI['user']
|
self::$DI['user']
|
||||||
);
|
);
|
||||||
|
|
||||||
self::$objectDisable->disable(self::$DI['app']['phraseanet.appbox']);
|
self::$objectDisable->disable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,34 +62,42 @@ class collectionTest extends \PhraseanetTestCase
|
|||||||
{
|
{
|
||||||
$base_id = self::$object->get_base_id();
|
$base_id = self::$object->get_base_id();
|
||||||
$coll_id = self::$object->get_coll_id();
|
$coll_id = self::$object->get_coll_id();
|
||||||
self::$object->disable(self::$DI['app']['phraseanet.appbox']);
|
|
||||||
|
self::$object->disable();
|
||||||
|
|
||||||
$this->assertTrue(is_int(self::$object->get_base_id()));
|
$this->assertTrue(is_int(self::$object->get_base_id()));
|
||||||
$this->assertTrue(is_int(self::$object->get_coll_id()));
|
$this->assertTrue(is_int(self::$object->get_coll_id()));
|
||||||
$this->assertFalse(self::$object->is_active());
|
$this->assertFalse(self::$object->is_active());
|
||||||
|
|
||||||
$sbas_id = self::$object->get_databox()->get_sbas_id();
|
$sbas_id = self::$object->get_databox()->get_sbas_id();
|
||||||
$databox = self::$DI['app']->findDataboxById($sbas_id);
|
$databox = $this->getApplication()->findDataboxById($sbas_id);
|
||||||
|
|
||||||
foreach ($databox->get_collections() as $collection) {
|
foreach ($databox->get_collections() as $collection) {
|
||||||
$this->assertTrue($collection->get_base_id() !== $base_id);
|
$this->assertNotEquals($collection->get_base_id(), $base_id);
|
||||||
$this->assertTrue($collection->get_coll_id() !== $coll_id);
|
$this->assertNotEquals($collection->get_coll_id(), $coll_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testEnable()
|
public function testEnable()
|
||||||
{
|
{
|
||||||
self::$objectDisable->enable(self::$DI['app']['phraseanet.appbox']);
|
self::$objectDisable->enable();
|
||||||
|
|
||||||
$this->assertTrue(is_int(self::$objectDisable->get_base_id()));
|
$this->assertTrue(is_int(self::$objectDisable->get_base_id()));
|
||||||
$this->assertTrue(is_int(self::$objectDisable->get_coll_id()));
|
$this->assertTrue(is_int(self::$objectDisable->get_coll_id()));
|
||||||
$this->assertTrue(self::$objectDisable->is_active());
|
$this->assertTrue(self::$objectDisable->is_active());
|
||||||
|
|
||||||
$n = $m = 0;
|
$n = $m = 0;
|
||||||
|
|
||||||
foreach (self::$objectDisable->get_databox()->get_collections() as $collection) {
|
foreach (self::$objectDisable->get_databox()->get_collections() as $collection) {
|
||||||
if ($collection->get_base_id() === self::$objectDisable->get_base_id())
|
if ($collection->get_base_id() === self::$objectDisable->get_base_id()) {
|
||||||
$n ++;
|
$n++;
|
||||||
if ($collection->get_coll_id() === self::$objectDisable->get_coll_id())
|
}
|
||||||
$m ++;
|
|
||||||
|
if ($collection->get_coll_id() === self::$objectDisable->get_coll_id()) {
|
||||||
|
$m++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->assertEquals(1, $n);
|
$this->assertEquals(1, $n);
|
||||||
$this->assertEquals(1, $m);
|
$this->assertEquals(1, $m);
|
||||||
}
|
}
|
||||||
@@ -97,9 +105,16 @@ class collectionTest extends \PhraseanetTestCase
|
|||||||
public function testGet_record_amount()
|
public function testGet_record_amount()
|
||||||
{
|
{
|
||||||
self::$object->empty_collection();
|
self::$object->empty_collection();
|
||||||
$file = new File(self::$DI['app'], self::$DI['app']['mediavorus']->guess(__DIR__ . '/../files/cestlafete.jpg'), self::$object);
|
|
||||||
record_adapter::createFromFile($file, self::$DI['app']);
|
$file = new File(
|
||||||
|
$this->getApplication(),
|
||||||
|
$this->getApplication()['mediavorus']->guess(__DIR__ . '/../files/cestlafete.jpg'),
|
||||||
|
self::$object
|
||||||
|
);
|
||||||
|
|
||||||
|
record_adapter::createFromFile($file, $this->getApplication());
|
||||||
$this->assertTrue(self::$object->get_record_amount() === 1);
|
$this->assertTrue(self::$object->get_record_amount() === 1);
|
||||||
|
|
||||||
self::$object->empty_collection();
|
self::$object->empty_collection();
|
||||||
$this->assertTrue(self::$object->get_record_amount() === 0);
|
$this->assertTrue(self::$object->get_record_amount() === 0);
|
||||||
}
|
}
|
||||||
@@ -148,8 +163,8 @@ class collectionTest extends \PhraseanetTestCase
|
|||||||
|
|
||||||
public function testGet_record_details()
|
public function testGet_record_details()
|
||||||
{
|
{
|
||||||
$file = new File(self::$DI['app'], self::$DI['app']['mediavorus']->guess(__DIR__ . '/../files/cestlafete.jpg'), self::$object);
|
$file = new File($this->getApplication(), $this->getApplication()['mediavorus']->guess(__DIR__ . '/../files/cestlafete.jpg'), self::$object);
|
||||||
$record = record_adapter::createFromFile($file, self::$DI['app']);
|
$record = record_adapter::createFromFile($file, $this->getApplication());
|
||||||
$details = self::$object->get_record_details();
|
$details = self::$object->get_record_details();
|
||||||
|
|
||||||
$this->assertTrue(is_array($details));
|
$this->assertTrue(is_array($details));
|
||||||
@@ -175,7 +190,7 @@ class collectionTest extends \PhraseanetTestCase
|
|||||||
|
|
||||||
public function testGet_from_coll_id()
|
public function testGet_from_coll_id()
|
||||||
{
|
{
|
||||||
$temp_coll = collection::getByCollectionId(self::$DI['app'], self::$object->get_databox(), self::$object->get_coll_id());
|
$temp_coll = collection::getByCollectionId($this->getApplication(), self::$object->get_databox(), self::$object->get_coll_id());
|
||||||
$this->assertEquals(self::$object->get_coll_id(), $temp_coll->get_coll_id());
|
$this->assertEquals(self::$object->get_coll_id(), $temp_coll->get_coll_id());
|
||||||
$this->assertEquals(self::$object->get_base_id(), $temp_coll->get_base_id());
|
$this->assertEquals(self::$object->get_base_id(), $temp_coll->get_base_id());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user