From 66d51b365852a1e7b0c3f584432b9e4d8eff30e6 Mon Sep 17 00:00:00 2001
From: llaffont <llaffont@git-test.afi-sa.fr>
Date: Thu, 28 Mar 2013 13:39:42 +0000
Subject: [PATCH] =?UTF-8?q?WS=20Nanook:=20v=C3=A9rification=20de=20la=20va?=
 =?UTF-8?q?lidit=C3=A9=20d'un=20utilisateur=20lors=20de=20la=20cr=C3=A9ati?=
 =?UTF-8?q?on=20de=20compte=20automatique?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../WebService/SIGB/AbstractRESTService.php   |  2 +
 .../SIGB/Nanook/PatronInfoReader.php          |  2 +-
 .../Class/WebService/SIGB/Nanook/Service.php  | 11 +++--
 .../Class/WebService/SIGB/NanookTest.php      | 48 +++++++++++++++----
 4 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/library/Class/WebService/SIGB/AbstractRESTService.php b/library/Class/WebService/SIGB/AbstractRESTService.php
index 07908da8fbd..4cb92c291b7 100644
--- a/library/Class/WebService/SIGB/AbstractRESTService.php
+++ b/library/Class/WebService/SIGB/AbstractRESTService.php
@@ -163,6 +163,8 @@ abstract class Class_WebService_SIGB_AbstractRESTService extends Class_WebServic
 
 		if ('' != $patronId = $this->_getTagData($xml, 'patronId'))
 			$user->setIdSigb($patronId);
+
+		return $this;
 	}
 		
 
diff --git a/library/Class/WebService/SIGB/Nanook/PatronInfoReader.php b/library/Class/WebService/SIGB/Nanook/PatronInfoReader.php
index cacc1dcb5fd..0c16806267a 100644
--- a/library/Class/WebService/SIGB/Nanook/PatronInfoReader.php
+++ b/library/Class/WebService/SIGB/Nanook/PatronInfoReader.php
@@ -30,7 +30,7 @@ class Class_WebService_SIGB_Nanook_PatronInfoReader extends Class_WebService_SIG
 	 * @param string $data
 	 */
 	public function endPatronId($data) {
-		$this->getEmprunteur()->setId($data);
+		$this->getEmprunteur()->setId($data)->beValid();
 	}
 
 
diff --git a/library/Class/WebService/SIGB/Nanook/Service.php b/library/Class/WebService/SIGB/Nanook/Service.php
index 76dc128f353..d4c2e891065 100644
--- a/library/Class/WebService/SIGB/Nanook/Service.php
+++ b/library/Class/WebService/SIGB/Nanook/Service.php
@@ -35,9 +35,10 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
 	 * @return Class_WebService_SIGB_Emprunteur
 	 */
 	public function getEmprunteur($user) {
-		$this->_authenticate($user);
-		return $this->ilsdiGetPatronInfo(array('patronId' => $user->getIdSigb()),
-																		 Class_WebService_SIGB_Nanook_PatronInfoReader::newInstance());
+		return $this
+			->_authenticate($user)
+			->ilsdiGetPatronInfo(array('patronId' => $user->getIdSigb()),
+													 Class_WebService_SIGB_Nanook_PatronInfoReader::newInstance());
 	}
 
 
@@ -117,9 +118,9 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
 	 */
 	protected function _authenticate($user) {
 		if (null != $user->getIdSigb())
-			return;
+			return $this;
 
-		$this->ilsdiAuthenticatePatron($user);
+		return $this->ilsdiAuthenticatePatron($user);
 	}
 }
 ?>
\ No newline at end of file
diff --git a/tests/library/Class/WebService/SIGB/NanookTest.php b/tests/library/Class/WebService/SIGB/NanookTest.php
index a2a415b2d17..bc11ca43ed0 100644
--- a/tests/library/Class/WebService/SIGB/NanookTest.php
+++ b/tests/library/Class/WebService/SIGB/NanookTest.php
@@ -147,24 +147,48 @@ class NanookNoConnectionTest extends NanookServiceErrorTestCase {
 
 
 
-class NanookHtmlResponseTest extends NanookServiceErrorTestCase {
+class NanookHtmlResponseErrorTest extends NanookServiceErrorTestCase {
+	protected $_emprunteur;
+
 	public function setUp() {
 		parent::setUp();
 
 		$this->_mock_web_client
 			->whenCalled('open_url')
 			->answers(NanookFixtures::htmlTomcatError());
-	}
 
-	/** @test */
-	public function getEmprunteurShouldReturnEmptyEmprunteur() {
-		$emprunteur = $this->_service->getEmprunteur(Class_Users::getLoader()
+		$this->_emprunteur = $this->_service->getEmprunteur(Class_Users::getLoader()
 																								 ->newInstance()
 																								 ->setIdSigb(1));
-		$this->assertNotNull($emprunteur);
-		$this->assertEmpty($emprunteur->getReservations());
-		$this->assertEmpty($emprunteur->getPretsEnRetard());
-		$this->assertEmpty($emprunteur->getEmprunts());
+	}
+
+
+	/** @test */
+	public function getEmprunteurShouldNotBeNull() {
+		$this->assertNotNull($this->_emprunteur);
+	}
+
+
+	/** @test */
+	public function reservationsShouldBeEmpty() {
+		$this->assertEmpty($this->_emprunteur->getReservations());		
+	}
+
+
+	/** @test */
+	public function pretsRetardShouldBeEmpty() {
+		$this->assertEmpty($this->_emprunteur->getPretsEnRetard());		
+	}
+
+
+	/** @test */
+	public function empruntsShouldBeEmpty() {
+		$this->assertEmpty($this->_emprunteur->getEmprunts());		
+	}
+
+	/** @test */
+	public function validShouldBeFalse() {
+		$this->assertFalse($this->_emprunteur->isValid());		
 	}
 }
 
@@ -366,6 +390,12 @@ class NanookGetEmprunteurChristelDelpeyrouxTest extends NanookTestCase {
 	}
 
 
+	/** @test */
+	public function emprunteurShouldBeValid() {
+		$this->assertTrue($this->_emprunteur->isValid());		
+	}
+
+
 	/** @test */
 	public function idShouldBeOne() {
 		$this->assertEquals('1', $this->_emprunteur->getId());
-- 
GitLab