From 38e79bf28cc63aff2df4f49b3889c833f84510c2 Mon Sep 17 00:00:00 2001
From: pbarroca <pbarroca@afi-sa.fr>
Date: Tue, 6 Oct 2015 12:21:21 +0200
Subject: [PATCH] rel #30143: fix tests

---
 library/Class/Notice.php                      |  7 +++++
 .../Notice/Thumbnail/ProviderFactory.php      |  8 ++++-
 library/Class/WebService/Vignette.php         |  4 +--
 .../admin/controllers/CmsControllerTest.php   | 30 +++++++++----------
 .../library/Class/WebService/VignetteTest.php | 24 ++++++++-------
 5 files changed, 45 insertions(+), 28 deletions(-)

diff --git a/library/Class/Notice.php b/library/Class/Notice.php
index 918e8724ff3..84b04d319bc 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 74e66c788c4..c2348093ecd 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 ed0ff4d7ea7..c1ef935b74f 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 005b58f004b..62d2f96f489 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 30f7bad7291..bd9388dfe39 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());
   }
 }
-- 
GitLab