diff --git a/library/Class/Notice.php b/library/Class/Notice.php index 918e8724ff3abbee80dad84da3baa088a0de00bf..84b04d319bc9f93c52ee2aedbb0005929ca46fa6 100644 --- a/library/Class/Notice.php +++ b/library/Class/Notice.php @@ -1642,6 +1642,7 @@ class Class_Notice extends Storm_Model_Abstract { return $canvas->renderNotice($this); } + public function getFamilleId() { if ($type_doc = Class_TypeDoc::find($this->getTypeDoc())) return $type_doc->getFamilleId(); @@ -1649,6 +1650,12 @@ class Class_Notice extends Storm_Model_Abstract { } + public function isBookFamily() { + return ($type_doc = Class_TypeDoc::find($this->getTypeDoc())) ? + $type_doc->isBook() : false; + } + + public function isNouveaute() { return date('Y-m-d', self::getTimeSource()->time()) <= substr($this->getDateCreation(), 0, 10); } diff --git a/library/Class/Notice/Thumbnail/ProviderFactory.php b/library/Class/Notice/Thumbnail/ProviderFactory.php index 74e66c788c434a75e2a0fa8b12f41c2a9a0c061b..c2348093ecd6d6b40c77d6f8bdcd6155fc6aed58 100644 --- a/library/Class/Notice/Thumbnail/ProviderFactory.php +++ b/library/Class/Notice/Thumbnail/ProviderFactory.php @@ -24,7 +24,7 @@ class Class_Notice_Thumbnail_ProviderFactory { public function newWith($file_system, $notice) { $mapping = ['Article' => function($record) { return $record->isArticleCms(); }, - 'Album' => function($record) { return $record->isRessourceNumerique(); }, + 'Album' => function($record) { return $this->_isAlbum($record); }, 'Site' => function($record) { return $record->isSite(); }, 'CacheServer' => function() { return true; }]; @@ -34,4 +34,10 @@ class Class_Notice_Thumbnail_ProviderFactory { return new $class_name($file_system, $notice); } } + + + public function _isAlbum($record) { + return $record->isRessourceNumerique() + && !$record->isBookFamily(); + } } diff --git a/library/Class/WebService/Vignette.php b/library/Class/WebService/Vignette.php index ed0ff4d7ea7dc7a07b53ca49a8b3fb1b97b937bc..c1ef935b74fad2a5c0d0458710359765f56eb902 100644 --- a/library/Class/WebService/Vignette.php +++ b/library/Class/WebService/Vignette.php @@ -42,8 +42,8 @@ class Class_WebService_Vignette extends Class_WebService_Abstract { public function getThumbnailProviderFor($notice) { - return (new Class_Notice_Thumbnail_ProviderFactory()) - ->newWith($this->getFileSystem(), $notice); + $factory = new Class_Notice_Thumbnail_ProviderFactory(); + return $factory->newWith($this->getFileSystem(), $notice); } diff --git a/tests/application/modules/admin/controllers/CmsControllerTest.php b/tests/application/modules/admin/controllers/CmsControllerTest.php index 005b58f004b66ea8006c306bdfc9bca62522f8ea..62d2f96f48991ab158a489d8e8a33324b846e32a 100644 --- a/tests/application/modules/admin/controllers/CmsControllerTest.php +++ b/tests/application/modules/admin/controllers/CmsControllerTest.php @@ -857,20 +857,20 @@ class CmsControllerArticleConcertEditActionPostTest extends CmsControllerWithPer Class_WebService_Vignette::setFileSystem($filesystem); - $image = Storm_Test_ObjectWrapper::mock(); - Class_WebService_Thumbnail_Provider_Article::setDefaultImageFactory( - Storm_Test_ObjectWrapper::mock() - ->whenCalled('newImage') - ->answers($image)); - - $image - ->whenCalled('thumbnailImage') - ->with(160, 220, true, true) - ->answers(null) - ->whenCalled('writeImage') - ->with(PATH_TEMP . 'vignettes_titre/ERIKTRUFFAZLADYLANDQUARTETENCONCERT-4-TOM----8.jpg') - ->answers(null) - ->beStrict(); + $image = $this->mock() + ->whenCalled('thumbnailImage') + ->with(160, 220, true, true) + ->answers(null) + + ->whenCalled('writeImage') + ->with(PATH_TEMP . 'vignettes_titre/ERIKTRUFFAZLADYLANDQUARTETENCONCERT-4-TOM----8.jpg') + ->answers(null) + + ->beStrict(); + + $image_factory = $this->mock()->whenCalled('newImage')->answers($image); + Class_Notice_Thumbnail_ProviderAbstract::setDefaultImageFactory($image_factory); + Class_Notice::beVolatile(); Class_NoticeDomain::beVolatile(); @@ -922,7 +922,7 @@ class CmsControllerArticleConcertEditActionPostTest extends CmsControllerWithPer public function tearDown() { Class_WebService_Vignette::setFileSystem(null); - Class_WebService_Thumbnail_Provider_Article::setDefaultImageFactory(null); + Class_Notice_Thumbnail_ProviderAbstract::setDefaultImageFactory(null); parent::tearDown(); } diff --git a/tests/library/Class/WebService/VignetteTest.php b/tests/library/Class/WebService/VignetteTest.php index 30f7bad7291a5355bdeb79ecc1db2e8bdd549e2d..bd9388dfe39d0a5d38b02273465c83125b85538b 100644 --- a/tests/library/Class/WebService/VignetteTest.php +++ b/tests/library/Class/WebService/VignetteTest.php @@ -22,19 +22,20 @@ class Class_WebService_VignetteTest extends Storm_Test_ModelTestCase { public function setUp() { parent::setUp(); - $http_client = Storm_Test_ObjectWrapper::mock(); + $http_client = $this->mock(); $this->fixture('Class_CodifTypeDoc', ['id' => 102, 'type_doc_id'=> 102, 'famille_id' => Class_CodifTypeDoc::LIVRE]); - $this->fixture('Class_Notice',['id'=> 10, - 'titre_principal' => 'Le photographe', - 'auteur_principal' => 'Guibert', - 'isbn' => '3222222', - 'ean' => '1111111', - 'type_doc' => 102]); + $this->fixture('Class_Notice', + ['id'=> 10, + 'titre_principal' => 'Le photographe', + 'auteur_principal' => 'Guibert', + 'isbn' => '3222222', + 'ean' => '1111111', + 'type_doc' => 102]); Class_WebService_AllServices::setHttpClient($http_client); @@ -57,7 +58,8 @@ class Class_WebService_VignetteTest extends Storm_Test_ModelTestCase { 'statut_recherche' => 2])) ->beStrict(); - (new Class_WebService_Vignette())->updateUrlsFromCacheServer(Class_Notice::find(10)); + (new Class_WebService_Vignette()) + ->updateUrlsFromCacheServer(Class_Notice::find(10)); } @@ -69,12 +71,14 @@ class Class_WebService_VignetteTest extends Storm_Test_ModelTestCase { /** @test */ public function vignetShouldHaveBeenUpdatedWithPotterThumbJpg() { - $this->assertEquals('http://cache.org/potter_thumb.jpg', Class_Notice::find(10)->getUrlVignette()); + $this->assertEquals('http://cache.org/potter_thumb.jpg', + Class_Notice::find(10)->getUrlVignette()); } /** @test */ public function imageShouldHaveBeenUpdatedWithPotterJpg() { - $this->assertEquals('http://cache.org/potter.jpg', Class_Notice::find(10)->getUrlImage()); + $this->assertEquals('http://cache.org/potter.jpg', + Class_Notice::find(10)->getUrlImage()); } }