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