diff --git a/VERSIONS_HOTLINE/47849 b/VERSIONS_HOTLINE/47849
new file mode 100644
index 0000000000000000000000000000000000000000..173757b7ac41e1cd0b76e7254f415c585dfe34dc
--- /dev/null
+++ b/VERSIONS_HOTLINE/47849
@@ -0,0 +1 @@
+ - ticket #47849 : correction des déconnexions intempestives du portail
\ No newline at end of file
diff --git a/library/Class/WebService/OAI/ResumptionToken.php b/library/Class/WebService/OAI/ResumptionToken.php
index 2bd00deb015a1cb2cedfedcbf49526eda2b82a4a..20b87cec45a0132662b16af88921bde76726fc1c 100644
--- a/library/Class/WebService/OAI/ResumptionToken.php
+++ b/library/Class/WebService/OAI/ResumptionToken.php
@@ -16,7 +16,7 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
@@ -32,6 +32,7 @@ class Class_WebService_OAI_ResumptionToken {
     return ['_params', '_list_size', '_cursor', '_page_number'];
   }
 
+
   public function getCache() {
     if (!isset($this->_cache))
       $this->_cache =  (new Storm_Cache());
@@ -57,13 +58,13 @@ class Class_WebService_OAI_ResumptionToken {
   }
 
   public function save() {
-    return $this->getCache()->save($this, md5(serialize($this)));
+    return $this->getCache()->save($this, $this->getCacheKey());
   }
 
 
   public function next($size) {
-    return self::newWithParamsAndListSize($this->_params, 
-                                          $this->_list_size, 
+    return self::newWithParamsAndListSize($this->_params,
+                                          $this->_list_size,
                                           $this->_cursor + $size,
                                           $this->_page_number + 1);
   }
@@ -86,5 +87,9 @@ class Class_WebService_OAI_ResumptionToken {
       return null;
     return $this->_params[$key];
   }
+
+
+  public function getCacheKey() {
+    return md5(serialize($this));
+  }
 }
-?>
\ No newline at end of file
diff --git a/library/storm b/library/storm
index 4137526649e03319a84336f6a32718cffbc36629..9fe882b194ddec9d52430c582c77c14d81f25556 160000
--- a/library/storm
+++ b/library/storm
@@ -1 +1 @@
-Subproject commit 4137526649e03319a84336f6a32718cffbc36629
+Subproject commit 9fe882b194ddec9d52430c582c77c14d81f25556
diff --git a/tests/application/modules/admin/controllers/AlbumControllerTest.php b/tests/application/modules/admin/controllers/AlbumControllerTest.php
index 6263228de2736e30591aee219f3d3c896b20fe77..87b9f9245bfdec11d3987c52d0c91815f318bfcc 100644
--- a/tests/application/modules/admin/controllers/AlbumControllerTest.php
+++ b/tests/application/modules/admin/controllers/AlbumControllerTest.php
@@ -1657,14 +1657,12 @@ class Admin_AlbumControllerPostEditAlbumMesBDTest extends Admin_AlbumControllerT
                      ]))
       ->save();
 
-    $this->cache_mock = $this->mock()
-                             ->whenCalled('save')
-                             ->answers(true)
+    Storm_Cache::beVolatile();
+    Storm_Cache::setSeed('local');
+    $cache = new Storm_Cache();
+    $cache->save('some', 'data');
+    $this->assertEquals('some', $cache->load('data'));
 
-                             ->whenCalled('clean')
-                             ->answers(true);
-
-    Storm_Cache::setDefaultZendCache($this->cache_mock);
     $this->postDispatch('/admin/album/edit_album/id/43',
                         ['titre' => 'Mes BD',
                          'cat_id' => 2,
@@ -1773,7 +1771,7 @@ class Admin_AlbumControllerPostEditAlbumMesBDTest extends Admin_AlbumControllerT
 
   /** @test */
   public function cacheShouldBeCleared() {
-    $this->assertTrue($this->cache_mock->methodHasBeenCalled('clean'));
+    $this->assertEmpty((new Storm_Cache())->load('data'));
   }
 
 
diff --git a/tests/application/modules/admin/controllers/HarvestControllerTest.php b/tests/application/modules/admin/controllers/HarvestControllerTest.php
index 4e757a25a97b6b84abfb649de2d26dd56440ec1f..f1e104cbb1ab2106ccb948bcaadf4d4897e26fcf 100644
--- a/tests/application/modules/admin/controllers/HarvestControllerTest.php
+++ b/tests/application/modules/admin/controllers/HarvestControllerTest.php
@@ -145,13 +145,12 @@ class HarvestControllerArteVodActivatedWithFilmsTest extends HarvestControllerAr
   public function setUp() {
     parent::setUp();
 
-    $this->cache_mock = $this->mock()
-                             ->whenCalled('save')
-                             ->answers(true)
+    Storm_Cache::beVolatile();
+    Storm_Cache::setSeed('local');
+    $cache = new Storm_Cache();
+    $cache->save('some', 'data');
+    $this->assertEquals('some', $cache->load('data'));
 
-                             ->whenCalled('clean')
-                             ->answers(true);
-    (new Storm_Cache())->setDefaultZendCache($this->cache_mock);
     $this->dispatch('/admin/harvest/arte-vod', true);
   }
 
@@ -174,12 +173,10 @@ class HarvestControllerArteVodActivatedWithFilmsTest extends HarvestControllerAr
   }
 
 
-
   /** @test */
   public function cacheShouldBeCleaned() {
-    $this->assertTrue($this->cache_mock->methodHasBeenCalled('clean'));
+    $this->assertEmpty((new Storm_Cache())->load('data'));
   }
-
 }
 
 
diff --git a/tests/application/modules/admin/controllers/SitothequeControllerTest.php b/tests/application/modules/admin/controllers/SitothequeControllerTest.php
index a06829b3e9b0951c91f1148b8d56c1b0247d805a..dbccf799cebcc13b1aa576009c4b017cb2c8c0d3 100644
--- a/tests/application/modules/admin/controllers/SitothequeControllerTest.php
+++ b/tests/application/modules/admin/controllers/SitothequeControllerTest.php
@@ -268,11 +268,10 @@ class SitothequeControllerPostAddActionTest extends SitothequeControllerTestCase
   public function setUp() {
     parent::setUp();
 
-    $this->cache = $this->mock()
-                        ->whenCalled('save')->answers(true)
-                        ->whenCalled('clean')->answers(true);
-
-    Storm_Cache::setDefaultZendCache($this->cache);
+    Storm_Cache::beVolatile();
+    $this->cache = (new Storm_Cache());
+    $this->cache->save('some', 'data');
+    $this->assertEquals('some', $this->cache->load('data'));
 
     $this->postDispatch('/admin/sito/add/id_cat/2',
                         ['titre' => 'google',
@@ -324,9 +323,10 @@ class SitothequeControllerPostAddActionTest extends SitothequeControllerTestCase
 
   /** @test */
   public function cacheShouldHaveBeenCleaned() {
-    $this->assertTrue($this->cache->methodHasBeenCalled('clean'));
+    $this->assertEmpty($this->cache->load('data'));
   }
 
+
   /** @test */
   public function siteShouldBeIndexed() {
     $this->assertNotNull(Class_Sitotheque::findFirstBy(['order'=>'titre desc'])->getNotice());
diff --git a/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php b/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php
index 27a95fdbea459638b226ae1efe9fa9e4049d99ab..e2946e7b1b10ae76c7046b4488a855e1e3686cd0 100644
--- a/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php
+++ b/tests/application/modules/opac/controllers/AbonneControllerPretsTest.php
@@ -19,7 +19,6 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
-require_once 'AbstractControllerTestCase.php';
 require_once 'tests/fixtures/DilicomFixtures.php';
 
 abstract class AbstractAbonneControllerPretsTestCase extends AbstractControllerTestCase {
@@ -46,15 +45,8 @@ abstract class AbstractAbonneControllerPretsTestCase extends AbstractControllerT
                                       'idabon' => 'x234',
                                       'password' => 'flo']);
 
-    $this->zend_cache = Storm_Test_ObjectWrapper::mock();
-    Storm_Cache::setDefaultZendCache($this->zend_cache);
-    $this->zend_cache
-      ->whenCalled('save')
-      ->answers(true)
-      ->whenCalled('test')
-      ->answers(false)
-      ->whenCalled('remove')
-      ->answers(true);
+    Storm_Cache::beVolatile();
+    Storm_Cache::setSeed('local');
 
     $this->fixture('Class_AdminVar',
                    ['id' => 'DILICOM_PNB_GLN_COLLECTIVITE',
@@ -104,10 +96,8 @@ abstract class AbstractAbonneControllerPretsTestCase extends AbstractControllerT
 
 
   public function assertUserRemovedFromEmprunteurCache($user) {
-    $user_key = md5(serialize(['local',
-                               Class_WebService_SIGB_EmprunteurCache::newInstance()->keyFor($user)]));
-    $this->assertTrue($this->zend_cache
-                      ->methodHasBeenCalledWithParams('remove', array($user_key)));
+    $this->assertFalse(Class_WebService_SIGB_EmprunteurCache::newInstance()
+                       ->isCached($user));
   }
 }
 
@@ -195,7 +185,6 @@ abstract class AbonneControllerPretsListThreePretsTestCase extends AbstractAbonn
 
 class AbonneControllerPretsExportThreePretsTest extends AbonneControllerPretsListThreePretsTestCase {
   protected
-    $_storm_default_to_volatile = true,
     $_dl_file,
     $unimarc = '01201nam0 22002891  450 001001500000010003700015100004100052101000800093102000700101105001800108106000600126200009300132210002400225211001300249215006400262300002400326307002900350330027300379345001800652461005600670700001800726701003000744801003300774856008300807940000700890995001400897frOr0354235228  a978-2-35592-635-8bbr.d7,65 EUR  a20140225d2014    |  |0fre|0103||||ba  afre  aFR  a        0||y|  ar1 aAlice au royaume de TrÁefleeCheshire cat Waltzh5fQuinRosegdessin Mamenosuke Fujimaru  aPariscKi-oond2014 1a20140227  a1 vol. (164 p.)cillustrations en noir et blancd18 x 13 cm  aTraduit du japonais  aSens de lecture japonais  aPerdue dans la forÃet aux portes, Alice tombe nez Áa nez avec Ace. Devenue malgrÂe elle la confidente du chevalier, elle ne sait comment repousser ses avances. Lorsque le chat du Cheshire, qui a assistÂe Áa la scÁene, intervient, la rencontre tourne Áa l\'affrontement.  b9782355926358 1tAlice au royaume de TrÁefle : Cheshire cat Waltzv5 1aQuinRose4070 1aFujimarubMamenosuke4440  aFRbElectrec20140225gAFNOR  uhttp://www.electre.com//GetBlob.ashx?Ean=9782355926358,0-1913692&Size=Original  aLR 1aAliceItem00604nam0 22001931  450 001001500000010001800015100004100033101000800074200010700082210003000189215001100219461002000230606002900250676000800279700004500287801005600332940000700388995001500395frOr1314913787  a9781408812792  a20140320                  0103        aEng1 aHarry Potter and the deathly hallowsdHarry Potter et les reliques de la mortfJoanne Kathleen Rowling  aLondrescBloomsburyd2010  a831 p. 1tHarry Potterv7  aAnglais (langue)2Rameau  a420 1aRowlingbJoanne Kathleenf1965-....4070  aFRbBibliothÁeque de l\'agglomÂeration de Saint-Omer  apm 1aPotterItem';
 
@@ -829,7 +818,6 @@ class AbonneControllerPretsPeriodicalTitleTest extends AbstractAbonneControllerP
 
   public function setUp() {
     parent::setUp();
-    $this->zend_cache->whenCalled('test')->answers(false);
 
     $identity = Class_Users::getIdentity();
     $patron = new Class_WebService_SIGB_Emprunteur($identity->getId(), 'FloFlo');
diff --git a/tests/library/Class/BatchTest.php b/tests/library/Class/BatchTest.php
index 14122d1b6ad32fdef103f5806656fd1f5d5e732a..441ec8782d307801bfecf15a09135aeadd6f8a56 100644
--- a/tests/library/Class/BatchTest.php
+++ b/tests/library/Class/BatchTest.php
@@ -149,9 +149,10 @@ class BatchIndexRessourcesNumeriquesTest extends Storm_Test_ModelTestCase {
                                             'status' => Class_Album::STATUS_VALIDATED]);
     Class_Notice::beVolatile();
 
-    $mock = Storm_Test_ObjectWrapper::mock();
-    $this->cache = $mock->whenCalled('clean')->answers(true);
-    Storm_Cache::setDefaultZendCache($this->cache);
+    Storm_Cache::beVolatile();
+    $this->cache = new Storm_Cache();
+    $this->cache->save('some', 'data');
+    $this->assertEquals('some', $this->cache->load('data'));
 
     (new Class_Batch_IndexRessourcesNumeriques())->run();
   }
@@ -163,7 +164,7 @@ class BatchIndexRessourcesNumeriquesTest extends Storm_Test_ModelTestCase {
 
   /** @test */
   public function afterRunCacheShouldBeCleaned() {
-    $this->assertTrue($this->cache->methodHasBeenCalled('clean'));
+    $this->assertEmpty($this->cache->load('data'));
   }
 }
 
diff --git a/tests/library/Class/CatalogueTest.php b/tests/library/Class/CatalogueTest.php
index ee183cb7c9ec90fe0d64cc79e7617dff88a28c85..0abc1272970e1da04fe865f287d85d1453a5da28 100644
--- a/tests/library/Class/CatalogueTest.php
+++ b/tests/library/Class/CatalogueTest.php
@@ -525,13 +525,10 @@ class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
                                         'libelle' => 'my cata',
                                         'type_doc' => '1']);
 
-
-    $this->mock_cache = Storm_Test_ObjectWrapper::mock();
-    Storm_Cache::setDefaultZendCache($this->mock_cache);
-    $this->mock_cache
-      ->whenCalled('test')->answers(false)
-      ->whenCalled('save')->answers(true)
-      ->whenCalled('load')->answers(false);
+    Storm_Cache::beVolatile();
+    Storm_Cache::setSeed('local');
+    $this->_cache = Storm_Cache::getDefaultZendCache();
+    $this->_cache->save('fixed_seed', 'local');
 
     $dvd_jeune_fille = $this->fixture('Class_Notice', ['id' => 23,
                                                        'type_doc' => 2,
@@ -595,7 +592,8 @@ class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
 
   /** @test */
   public function saveInCacheShouldHaveBeenCalledWithSerializedNotices() {
-    $this->assertTrue($this->mock_cache->methodHasBeenCalled('save'));
+    $cached_record = unserialize($this->_cache->load('d7c046ce443b5097ce0cd3ec7023ca72'))[0];
+    $this->assertEquals('La jeune fille', $cached_record->getTitrePrincipal());
   }
 
 
@@ -607,14 +605,7 @@ class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
                     'nb_notices' => 40];
 
     /* this test will fail when Class_Catalogue::_default_attribute_values change */
-    $this->mock_cache
-      ->whenCalled('test')
-      ->with('36487efac62b2214513f49148cecdaeb')
-      ->answers(true)
-      ->whenCalled('load')
-      ->with('36487efac62b2214513f49148cecdaeb')
-      ->answers(serialize(['test']))
-      ->beStrict();
+    $this->_cache->save(serialize(['test']), '6e2593bad86780aeba3c5b5b6cd4d5b5');
 
     $notices = Class_Catalogue::getNoticesByPreferences($preferences);
 
diff --git a/tests/library/Class/WebService/OAI/ResumptionTokenTest.php b/tests/library/Class/WebService/OAI/ResumptionTokenTest.php
index 74c4e30453f670730db4ed713de9409962cfa3fa..acc26fcdfa04d000ff98b0c6eea2df6922ed5400 100644
--- a/tests/library/Class/WebService/OAI/ResumptionTokenTest.php
+++ b/tests/library/Class/WebService/OAI/ResumptionTokenTest.php
@@ -16,62 +16,36 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
 
-class ResumptionTokenTest extends PHPUnit_Framework_TestCase {
-  protected $_token;
-  protected $_cache;
-  protected $_request_params;
-  protected $_xpath;
-  protected $_builder;
+class ResumptionTokenTest extends ModelTestCase {
+  protected
+    $_storm_default_to_volatile = true,
+    $_token,
+    $_request_params,
+    $_xpath,
+    $_builder;
 
   public function setUp() {
-    $this->_request_params = array('from' => '2011-12-25',
-                                   'until' => '',
-                                   'metadataPrefix' => 'oai_dc',
-                                   'set' => 'bande_dessinees');
-    $this->_cache = Storm_Test_ObjectWrapper::mock();
-    Storm_Cache::setDefaultZendCache($this->_cache);
-    $this->_token = Class_WebService_OAI_ResumptionToken::newWithParamsAndListSize($this->_request_params, 10000);
-    $this->_cache
-      ->whenCalled('save')
-      ->answers(true)
-
-      ->whenCalled('load')
-      ->answers(false);
+    $this->_request_params = ['from' => '2011-12-25',
+                              'until' => '',
+                              'metadataPrefix' => 'oai_dc',
+                              'set' => 'bande_dessinees'];
 
-    $this->_token->save();
-
-    $this->_token_cache_key = md5(serialize(['local', md5(serialize($this->_token))]));
-    $this->_cache
-      ->whenCalled('load')
-      ->with($this->_token_cache_key)
-      ->answers(serialize($this->_token));
+    Storm_Cache::beVolatile();
+    Storm_Cache::setSeed('local');
 
+    $this->_token = Class_WebService_OAI_ResumptionToken::newWithParamsAndListSize($this->_request_params, 10000);
 
+    $this->_token->save();
 
     $this->_xpath = new Storm_Test_XPathXML();
     $this->_builder = new Class_Xml_Builder();
   }
 
 
-  /** @test */
-  public function saveShouldSerializeTokenIntoCache() {
-    $this->assertEquals(Class_WebService_OAI_ResumptionToken::newWithParamsAndListSize($this->_request_params, 10000, 0, 1),
-                        unserialize($this->_cache->getFirstAttributeForLastCallOn('save')));
-  }
-
-
-  /** @test */
-  public function cacheKeyShouldBeMd5sumOfSerializedToken() {
-    $attributes = $this->_cache->getAttributesForLastCallOn('save');
-    $this->assertEquals($this->_token_cache_key, 
-                        end($attributes));
-  }
-
-
   /** @test */
   public function pageNumberShouldBeOne() {
     $this->assertEquals(1, $this->_token->getPageNumber());
@@ -80,8 +54,8 @@ class ResumptionTokenTest extends PHPUnit_Framework_TestCase {
 
   /** @test */
   public function findByMd5ShouldAnswerToken() {
-    $this->assertEquals(Class_WebService_OAI_ResumptionToken::newWithParamsAndListSize($this->_request_params, 10000, 0, 1), 
-                        Class_WebService_OAI_ResumptionToken::find(md5(serialize($this->_token))));
+    $this->assertEquals(Class_WebService_OAI_ResumptionToken::newWithParamsAndListSize($this->_request_params, 10000, 0, 1),
+                        Class_WebService_OAI_ResumptionToken::find($this->_token->getCacheKey()));
   }
 
 
@@ -105,7 +79,7 @@ class ResumptionTokenTest extends PHPUnit_Framework_TestCase {
     $this->_xpath->assertXPathContentContains($next->renderOn($this->_builder),
                                               '//resumptionToken[@completeListSize="10000"][@cursor="10"]',
                                               md5(serialize($next)));
-  } 
+  }
 
 
   /** @test */
@@ -119,11 +93,9 @@ class ResumptionTokenTest extends PHPUnit_Framework_TestCase {
     $this->assertEquals('bande_dessinees', $this->_token->getParam('set'));
   }
 
-  
+
   /** @test */
   public function getParamOfUnknownShouldReturnNull() {
     $this->assertNull($this->_token->getParam('Zork'));
   }
-
 }
-?>
\ No newline at end of file
diff --git a/tests/library/Class/WebService/SIGB/EmprunteurCacheTest.php b/tests/library/Class/WebService/SIGB/EmprunteurCacheTest.php
index 8a32f46690e02eb8c63fd7e920a93b87eac20ba3..f7a6c85eac33a8b1fab99a1698c6bbd137cb8d8c 100644
--- a/tests/library/Class/WebService/SIGB/EmprunteurCacheTest.php
+++ b/tests/library/Class/WebService/SIGB/EmprunteurCacheTest.php
@@ -16,22 +16,24 @@
  *
  * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
  * along with BOKEH; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
-class EmprunteurCacheTest extends Storm_Test_ModelTestCase {
-  protected $_cache;
+class EmprunteurCacheTest extends ModelTestCase {
+  protected
+    $_cache,
+    $_storm_default_to_volatile = true;
 
   public function setUp() {
     parent::setUp();
-    
+
     $this->emprunteur_johnny = Class_WebService_SIGB_Emprunteur::newInstance(1, 'johnny');
     $this->user_johnny = Class_Users::getLoader()->newInstanceWithId(23);
 
     $this->emprunteur_steven = Class_WebService_SIGB_Emprunteur::newInstance(2, 'steven');
     $this->user_steven = Class_Users::getLoader()->newInstanceWithId(666);
 
-    $this->sigb = Storm_Test_ObjectWrapper::mock();
+    $this->sigb = $this->mock();
     $this->sigb
       ->whenCalled('getEmprunteur')
       ->willDo(function() {throw new Class_WebService_Exception('erreur communication');})
@@ -42,17 +44,8 @@ class EmprunteurCacheTest extends Storm_Test_ModelTestCase {
 
     $key = md5(serialize(['local','emprunteur_23']));
 
-    $this->_cache = Storm_Test_ObjectWrapper::mock();
-    Storm_Cache::setDefaultZendCache($this->_cache);
-    $this->_cache
-      ->whenCalled('test')->answers(false)
-      ->whenCalled('load')->answers(false)
-      ->whenCalled('remove')->answers(false)
-      ->whenCalled('save')->answers(true)
-
-      ->whenCalled('test')->with($key)->answers(true)
-      ->whenCalled('load')->with($key)->answers(serialize($this->emprunteur_johnny))
-      ->whenCalled('remove')->with($key)->answers(true);
+    Storm_Cache::beVolatile();
+    (new Storm_Cache())->save($this->emprunteur_johnny, 'emprunteur_23');
 
     $this->emprunteur_cache = Class_WebService_SIGB_EmprunteurCache::newInstance();
   }
@@ -75,9 +68,7 @@ class EmprunteurCacheTest extends Storm_Test_ModelTestCase {
     $this->assertEquals($this->emprunteur_steven,
                         $this->emprunteur_cache->loadFromCacheOrSIGB($this->user_steven, $this->sigb));
 
-    $this->assertEquals(array(serialize($this->emprunteur_steven), md5(serialize(['local','emprunteur_666']))),
-                        $this->_cache->getAttributesForLastCallOn('save'));
-    
+    $this->assertEquals($this->emprunteur_steven, (new Storm_Cache())->load('emprunteur_666'));
   }
 
 
@@ -97,7 +88,7 @@ class EmprunteurCacheTest extends Storm_Test_ModelTestCase {
   /** @test */
   public function removeJohnnyShouldCallRemoveOnCache() {
     $this->emprunteur_cache->remove($this->user_johnny);
-    $this->assertTrue($this->_cache->methodHasBeenCalled('remove'));
+    $this->assertFalse($this->emprunteur_cache->isCached($this->user_johnny));
   }
 
 
@@ -106,10 +97,7 @@ class EmprunteurCacheTest extends Storm_Test_ModelTestCase {
     $this->emprunteur_johnny->setService(null);
     $this->assertEquals($this->emprunteur_johnny,
                         $this->emprunteur_cache->loadFromCacheOrSIGB($this->user_johnny, $this->sigb));
-
-    $this->assertFalse($this->_cache->methodHasBeenCalled('save'));
   }
-
 }
 
 
diff --git a/tests/library/ZendAfi/View/Helper/Accueil/SitoTest.php b/tests/library/ZendAfi/View/Helper/Accueil/SitoTest.php
index 98b871d51f87cc28092750ca783693e3eb82ac10..e9782dc1c06695084a16ed44865ada38cb37ad16 100644
--- a/tests/library/ZendAfi/View/Helper/Accueil/SitoTest.php
+++ b/tests/library/ZendAfi/View/Helper/Accueil/SitoTest.php
@@ -34,6 +34,9 @@ abstract class SitoViewHelperTestCase extends ViewHelperTestCase {
     parent::setUp();
 
     Storm_Cache::beVolatile();
+    Storm_Cache::setSeed('local');
+    Storm_Cache::getDefaultZendCache()->save('real_seed', 'local');
+
     $this->fixture('Class_AdminVar',
                    ['id' => 'CACHE_ACTIF',
                     'valeur' => '1'
@@ -196,15 +199,15 @@ class SitoViewHelperSelectItemsBySelectionOrderPaginationTest extends SitoViewHe
 
 class SitoViewHelperWithoutCacheTest extends SitoViewHelperTestCase {
   protected $_preferences = ['titre' => 'Ma sito',
-                               'type_aff' => 1,
-                               'id_items' => '12-15',
-                               'id_categorie' => '',
-                               'nb_aff' => 1,
-                               'display_order' => 'Selection'];
+                             'type_aff' => 1,
+                             'id_items' => '12-15',
+                             'id_categorie' => '',
+                             'nb_aff' => 1,
+                             'display_order' => 'Selection'];
 
   /** @test */
   public function cacheShouldNotBeUse() {
-    $value = (new Storm_Cache())->getCache()->load('b0ca57808f9be79c82d794dd6ff37979');
+    $value = (new Storm_Cache())->getCache()->load('132a93b63b7dc2b5ba0e1c9447bc133d');
     $this->assertFalse($value);
   }
 }
@@ -214,15 +217,15 @@ class SitoViewHelperWithoutCacheTest extends SitoViewHelperTestCase {
 
 class SitoViewHelperCachedTest extends SitoViewHelperTestCase {
   protected $_preferences = ['titre' => 'Ma sito',
-                               'type_aff' => 2,
-                               'id_items' => '12-15',
-                               'id_categorie' => '',
-                               'nb_aff' => 1,
-                               'display_order' => 'Selection'];
+                             'type_aff' => 2,
+                             'id_items' => '12-15',
+                             'id_categorie' => '',
+                             'nb_aff' => 1,
+                             'display_order' => 'Selection'];
 
   /** @test */
   public function cacheShouldBeUse() {
-    $value = (new Storm_Cache())->getCache()->load('7d8b4403c83a27920e6e1767ee9132e5');
+    $value = (new Storm_Cache())->getCache()->load('1f1d719bf0abc0f8bfe5dcea1ddbd19b');
     $this->assertNotEquals(false, $value);
   }
 }