From b4f07cf3b900f4ef8d72f1f169bc5389366c7cbd Mon Sep 17 00:00:00 2001
From: Ghislain Loas <ghislo@sandbox.pergame.net>
Date: Thu, 3 Nov 2016 16:48:26 +0100
Subject: [PATCH] hotline #4992 : fix tests

---
 cosmogramme/php/classes/classe_abonne.php      |  3 +--
 library/Class/Users.php                        | 18 ++++++++++++------
 library/ZendAfi/Auth/Adapter/CommSigb.php      |  5 +----
 .../admin/controllers/UsersControllerTest.php  |  2 +-
 .../controllers/MultimediaControllerTest.php   |  1 +
 5 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/cosmogramme/php/classes/classe_abonne.php b/cosmogramme/php/classes/classe_abonne.php
index 19cf19ed34b..c862dbf09f2 100644
--- a/cosmogramme/php/classes/classe_abonne.php
+++ b/cosmogramme/php/classes/classe_abonne.php
@@ -146,9 +146,8 @@ class abonne
 
 	protected function saveOrUpdateInDB($data){
     $new_user = Class_Users::newInstance($data);
-    $bib = Class_IntBib::find($this->id_bib);
 
-		if(!$user = Class_Users::findMatchingPatron($new_user,$bib))
+		if(!$user = Class_Users::findMatchingPatron($new_user))
       $user = $new_user;
 
 		$user
diff --git a/library/Class/Users.php b/library/Class/Users.php
index 83b837af8d4..a2583795881 100644
--- a/library/Class/Users.php
+++ b/library/Class/Users.php
@@ -43,27 +43,30 @@ class UsersLoader extends Storm_Model_Loader {
   }
 
 
-  public function findMatchingPatron($patron, $bib) {
-    if (!$patron || !$bib)
+  public function findMatchingPatron($patron) {
+    if (!$patron)
+      return null;
+
+    if (! $id_site = $patron->hasIdSite())
       return null;
 
     if (($ordreabon = $patron->getOrdreabon())
          && ($user = Class_Users::findFirstBy(['login' => $patron->getLogin(),
                                                'ordreabon' => $ordreabon,
-                                               'id_site' => $bib->getId()])))
+                                               'id_site' => $id_site])))
       return $user;
 
     if ($user = Class_Users::findFirstBy(['login' => $patron->getLogin(),
                                           'id_sigb' => $patron->getIdSigb(),
-                                          'id_site' => $bib->getId()]))
+                                          'id_site' => $id_site]))
       return $user;
 
     if ($user = Class_Users::findFirstBy(['login' => $patron->getLogin(),
-                                          'id_site' => $bib->getId()]))
+                                          'id_site' => $id_site]))
       return $user;
 
     if (($id_sigb = $patron->getIdSigb())
-        && ($user = Class_Users::findFirstBy(['id_site' => $bib->getId(),
+        && ($user = Class_Users::findFirstBy(['id_site' => $id_site,
                                               'id_sigb' => $patron->getIdSigb()])))
       return $user;
 
@@ -1003,6 +1006,9 @@ class Class_Users extends Storm_Model_Abstract {
 
 
   protected function _isUnique() {
+    xdebug_break();
+    if (!$this->getIdSigb())
+      return (!$this->ifLoginExist($this->getLogin()));
     return 0 == $this->getLoader()->countBy(['id_sigb' => $this->getIdSigb(),
                                              'login' => $this->getLogin()]);
   }
diff --git a/library/ZendAfi/Auth/Adapter/CommSigb.php b/library/ZendAfi/Auth/Adapter/CommSigb.php
index 2c415d12787..63dbd615a95 100644
--- a/library/ZendAfi/Auth/Adapter/CommSigb.php
+++ b/library/ZendAfi/Auth/Adapter/CommSigb.php
@@ -72,10 +72,7 @@ class ZendAfi_Auth_Adapter_CommSigb implements Zend_Auth_Adapter_Interface {
   protected function _getUserToSave($user_from_sigb) {
     $new_user = Class_Users::newInstance()->setLogin($this->_identity);
 
-    if (!$bib = $user_from_sigb->getBib())
-      return $new_user;
-
-    if ($user = Class_Users::findMatchingPatron($user_from_sigb, $bib))
+    if ($user = Class_Users::findMatchingPatron($user_from_sigb))
       return $user;
 
     return $new_user;
diff --git a/tests/application/modules/admin/controllers/UsersControllerTest.php b/tests/application/modules/admin/controllers/UsersControllerTest.php
index aee0ae8dc26..b165010fe6a 100644
--- a/tests/application/modules/admin/controllers/UsersControllerTest.php
+++ b/tests/application/modules/admin/controllers/UsersControllerTest.php
@@ -813,7 +813,7 @@ class UsersControllerAddActionPostTest extends UsersControllerWithMarcusTestCase
                 ->setPseudo('admin'))
 
       ->whenCalled('findFirstBy')
-      ->answers(new Class_Users());
+      ->answers(1);
 
     $this->_postData();
 
diff --git a/tests/application/modules/push/controllers/MultimediaControllerTest.php b/tests/application/modules/push/controllers/MultimediaControllerTest.php
index 7a75c3cf097..803c321ffd4 100644
--- a/tests/application/modules/push/controllers/MultimediaControllerTest.php
+++ b/tests/application/modules/push/controllers/MultimediaControllerTest.php
@@ -611,6 +611,7 @@ class CreateBorrowerInviteButNoGroupUserMultimediaControllerMessageReturnedIsUnd
 
 
 class CreateBorrowerInviteMultimediaControllerBorrowerReturnedIsInviteTest extends BorrowerMultimediaAddInBokehControllerTestCase {
+  protected $_storm_default_to_volatile = true;
   public function setUp() {
     parent::setUp();
         Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Users')
-- 
GitLab