Skip to content
Snippets Groups Projects
Commit 3dcb9680 authored by llaffont's avatar llaffont
Browse files

Correction authentification Nanook

parent 9af7be97
Branches
Tags
No related merge requests found
......@@ -153,6 +153,7 @@ abstract class Class_WebService_SIGB_AbstractRESTService extends Class_WebServic
/**
* Authentifie un utilisateur via SIGB et si réussi affecte l'id_sigb reçu
* @param $user Class_Users
* @return boolean true if successful
*/
public function ilsdiAuthenticatePatron($user) {
$params = ['service' => 'AuthenticatePatron',
......@@ -161,10 +162,12 @@ abstract class Class_WebService_SIGB_AbstractRESTService extends Class_WebServic
$xml = $this->httpGet($params);
if ('' != $patronId = $this->_getTagData($xml, 'patronId'))
if ('' != $patronId = $this->_getTagData($xml, 'patronId')) {
$user->setIdSigb($patronId);
return true;
}
return $this;
return false;
}
......
......@@ -35,10 +35,11 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
* @return Class_WebService_SIGB_Emprunteur
*/
public function getEmprunteur($user) {
return $this
->ilsdiAuthenticatePatron($user)
->ilsdiGetPatronInfo(array('patronId' => $user->getIdSigb()),
Class_WebService_SIGB_Nanook_PatronInfoReader::newInstance());
if (!$this->ilsdiAuthenticatePatron($user))
return Class_WebService_SIGB_Emprunteur::nullInstance();
return $this->ilsdiGetPatronInfo(['patronId' => $user->getIdSigb()],
Class_WebService_SIGB_Nanook_PatronInfoReader::newInstance());
}
......@@ -54,9 +55,9 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
$code_annexe = $annexe->getCode();
return $this->ilsdiHoldTitle(
array('bibId' => $exemplaire->getIdOrigine(),
'patronId' => $user->getIdSigb(),
'pickupLocation' => $code_annexe));
array('bibId' => $exemplaire->getIdOrigine(),
'patronId' => $user->getIdSigb(),
'pickupLocation' => $code_annexe));
}
......@@ -67,8 +68,8 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
*/
public function supprimerReservation($user, $reservation_id) {
return $this->ilsdiCancelHold(array(
'patronId' => $user->getIdSigb(),
'itemId' => $reservation_id));
'patronId' => $user->getIdSigb(),
'itemId' => $reservation_id));
}
......@@ -79,8 +80,8 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
*/
public function prolongerPret($user, $pret_id) {
return $this->ilsdiRenewLoan(array(
'patronId' => $user->getIdSigb(),
'itemId' => $pret_id));
'patronId' => $user->getIdSigb(),
'itemId' => $pret_id));
}
......@@ -91,7 +92,7 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
public function getNotice($id) {
try {
return $this->ilsdiGetRecords($id,
Class_WebService_SIGB_Nanook_GetRecordsResponseReader::newInstance());
Class_WebService_SIGB_Nanook_GetRecordsResponseReader::newInstance());
} catch (Exception $e) {
return;
}
......@@ -105,8 +106,8 @@ class Class_Webservice_SIGB_Nanook_Service extends Class_WebService_SIGB_Abstrac
public function buildQueryURL($options) {
$parts = array();
foreach ($options as $key => $value) {
$value = urlencode($value);
$parts[] = $key . '/' . $value;
$value = urlencode($value);
$parts[] = $key . '/' . $value;
}
return $this->getServerRoot() . implode('/', $parts);
......
......@@ -433,5 +433,3 @@
;; ('magit diff --stat -- opac3-cur-dir)
)
(global-set-key (kbd "C-c ms") 'magit-status-cur-dir)
......@@ -79,9 +79,9 @@ abstract class NanookTestCase extends Storm_Test_ModelTestCase {
->setWebClient($this->_mock_web_client);
$annexe_cran = Class_CodifAnnexe::getLoader()->newInstanceWithId(3)
->setLibelle('Annexe Cran-Gevrier')
->setIdBib(3)
->setCode(10);
->setLibelle('Annexe Cran-Gevrier')
->setIdBib(3)
->setCode(10);
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_CodifAnnexe')
->whenCalled('findFirstBy')->answers(null)
......@@ -97,29 +97,29 @@ abstract class NanookServiceErrorTestCase extends NanookTestCase {
/** @test */
public function reserverExemplaireShouldReturnFailure() {
$this->assertEquals(
array('statut' => false, 'erreur' => 'Service indisponible'),
$this->_service->reserverExemplaire(
Class_Users::getLoader()->newInstance()->setIdSigb(1),
Class_Exemplaire::getLoader()->newInstance()->setIdOrigine(''),
''));
array('statut' => false, 'erreur' => 'Service indisponible'),
$this->_service->reserverExemplaire(
Class_Users::getLoader()->newInstance()->setIdSigb(1),
Class_Exemplaire::getLoader()->newInstance()->setIdOrigine(''),
''));
}
/** @test */
public function supprimerReservationShouldReturnFailure() {
$this->assertEquals(
array('statut' => false, 'erreur' => 'Service indisponible'),
$this->_service->supprimerReservation(
Class_Users::getLoader()->newInstance()->setIdSigb(1), ''));
array('statut' => false, 'erreur' => 'Service indisponible'),
$this->_service->supprimerReservation(
Class_Users::getLoader()->newInstance()->setIdSigb(1), ''));
}
/** @test */
public function prolongerPretShouldReturnFailure() {
$this->assertEquals(
array('statut' => false, 'erreur' => 'Service indisponible'),
$this->_service->prolongerPret(
Class_Users::getLoader()->newInstance()->setIdSigb(1), ''));
array('statut' => false, 'erreur' => 'Service indisponible'),
$this->_service->prolongerPret(
Class_Users::getLoader()->newInstance()->setIdSigb(1), ''));
}
......@@ -139,8 +139,8 @@ class NanookNoConnectionTest extends NanookServiceErrorTestCase {
$this->_mock_web_client
->whenCalled('open_url')
->willDo(function () {
throw new Zend_Http_Client_Adapter_Exception('Unable to connect');
});
throw new Zend_Http_Client_Adapter_Exception('Unable to connect');
});
}
}
......@@ -158,8 +158,8 @@ class NanookHtmlResponseErrorTest extends NanookServiceErrorTestCase {
->answers(NanookFixtures::htmlTomcatError());
$this->_emprunteur = $this->_service->getEmprunteur(Class_Users::getLoader()
->newInstance()
->setIdSigb(1));
->newInstance()
->setIdSigb(1));
}
......@@ -324,21 +324,21 @@ class NanookGetNoticeLiliGrisbiAndCoTest extends NanookTestCase {
/** @test */
public function fourthExemplaireShouldBeEnTransit() {
$this->assertEquals(Class_WebService_SIGB_Exemplaire::DISPO_TRANSIT,
$this->_notice->exemplaireAt(3)->getDisponibilite());
$this->_notice->exemplaireAt(3)->getDisponibilite());
}
/** @test */
public function fiftExemplaireShouldBeDejaReserve() {
$this->assertEquals(Class_WebService_SIGB_Exemplaire::DISPO_DEJA_RESERVE,
$this->_notice->exemplaireAt(4)->getDisponibilite());
$this->_notice->exemplaireAt(4)->getDisponibilite());
}
/** @test */
public function sixthExemplaireShouldBeEnCommande() {
$this->assertEquals(Class_WebService_SIGB_Exemplaire::DISPO_EN_COMMANDE,
$this->_notice->exemplaireAt(5)->getDisponibilite());
$this->_notice->exemplaireAt(5)->getDisponibilite());
}
}
......@@ -369,11 +369,17 @@ class NanookGetEmprunteurChristelDelpeyrouxTest extends NanookTestCase {
parent::setUp();
$this->_mock_web_client
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/AuthenticatePatron/username/8765/password/2002')
->answers(NanookFixtures::xmlAuthenticatePatronChristelDelpeyroux())
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/GetPatronInfo/patronId/1')
->answers(NanookFixtures::xmlGetPatronChristelDelpeyroux());
$this->_chrystel = Class_Users::newInstance(['id_sigb' => 1]);
$this->_chrystel = Class_Users::newInstance(['id_sigb' => 1,
'login' => 8765,
'password' => 2002]);
$this->_emprunteur = $this->_service->getEmprunteur($this->_chrystel);
$this->_emprunteur->updateUser($this->_chrystel);
......@@ -476,35 +482,35 @@ class NanookGetEmprunteurChristelDelpeyrouxTest extends NanookTestCase {
/** @test */
public function firstEmpruntTitreShouldBeBeartEnPublic() {
$this->assertEquals('Béart en public',
$this->_emprunteur->getEmpruntAt(0)->getTitre());
$this->_emprunteur->getEmpruntAt(0)->getTitre());
}
/** @test */
public function firstEmpruntAuthorShouldBeGuyBeart() {
$this->assertEquals('Guy Béart',
$this->_emprunteur->getEmpruntAt(0)->getAuteur());
$this->_emprunteur->getEmpruntAt(0)->getAuteur());
}
/** @test */
public function firstEmpruntDateRetourShouldBeMayFourth2011() {
$this->assertEquals('04/05/2011',
$this->_emprunteur->getEmpruntAt(0)->getDateRetour());
$this->_emprunteur->getEmpruntAt(0)->getDateRetour());
}
/** @test */
public function firstEmpruntIdShouldBe196895() {
$this->assertEquals('196895',
$this->_emprunteur->getEmpruntAt(0)->getId());
$this->_emprunteur->getEmpruntAt(0)->getId());
}
/** @test */
public function firstEmpruntNoticeNumberShouldBe117661() {
$this->assertEquals('117661',
$this->_emprunteur->getEmpruntAt(0)->getExemplaire()->getNoNotice());
$this->_emprunteur->getEmpruntAt(0)->getExemplaire()->getNoNotice());
}
......@@ -523,7 +529,7 @@ class NanookGetEmprunteurChristelDelpeyrouxTest extends NanookTestCase {
/** @test */
public function secondEmpruntTitreShouldBeLesFinancesPubliquesEtc() {
$this->assertEquals('Les Finances publiques et la réforme budgétaire',
$this->_emprunteur->getEmpruntAt(1)->getTitre());
$this->_emprunteur->getEmpruntAt(1)->getTitre());
}
......@@ -543,21 +549,21 @@ class NanookGetEmprunteurChristelDelpeyrouxTest extends NanookTestCase {
/** @test */
public function secondEmpruntDateRetourShouldBeMayFourth2029() {
$this->assertEquals('04/05/2029',
$this->_emprunteur->getEmpruntAt(1)->getDateRetour());
$this->_emprunteur->getEmpruntAt(1)->getDateRetour());
}
/** @test */
public function secondEmpruntIdShouldBe107177() {
$this->assertEquals('107177',
$this->_emprunteur->getEmpruntAt(1)->getId());
$this->_emprunteur->getEmpruntAt(1)->getId());
}
/** @test */
public function secondEmpruntNoticeNumberShouldBe83413() {
$this->assertEquals('83413',
$this->_emprunteur->getEmpruntAt(1)->getExemplaire()->getNoNotice());
$this->_emprunteur->getEmpruntAt(1)->getExemplaire()->getNoNotice());
}
......@@ -582,21 +588,21 @@ class NanookGetEmprunteurChristelDelpeyrouxTest extends NanookTestCase {
/** @test */
public function firstReservationTitreShouldBeContesDesQuatreVents() {
$this->assertEquals('Contes des quatre vents',
$this->_emprunteur->getReservationAt(0)->getTitre());
$this->_emprunteur->getReservationAt(0)->getTitre());
}
/** @test */
public function firstReservationAuthorShouldBeNathaCaputo() {
$this->assertEquals('Natha Caputo',
$this->_emprunteur->getReservationAt(0)->getAuteur());
$this->_emprunteur->getReservationAt(0)->getAuteur());
}
/** @test */
public function firstReservationNoticeNumberShouldBe7307() {
$this->assertEquals('7307',
$this->_emprunteur->getReservationAt(0)->getExemplaire()->getNoNotice());
$this->_emprunteur->getReservationAt(0)->getExemplaire()->getNoNotice());
}
......@@ -621,21 +627,21 @@ class NanookGetEmprunteurChristelDelpeyrouxTest extends NanookTestCase {
/** @test */
public function secondReservationTitreShouldBeLeChantDuLac() {
$this->assertEquals('Le Chant du lac',
$this->_emprunteur->getReservationAt(1)->getTitre());
$this->_emprunteur->getReservationAt(1)->getTitre());
}
/** @test */
public function secondReservationAuthorShouldBeOlympeBhelyQuenum() {
$this->assertEquals('Olympe Bhêly-Quénum',
$this->_emprunteur->getReservationAt(1)->getAuteur());
$this->_emprunteur->getReservationAt(1)->getAuteur());
}
/** @test */
public function secondReservationNoticeNumberShouldBe12501() {
$this->assertEquals('12501',
$this->_emprunteur->getReservationAt(1)->getExemplaire()->getNoNotice());
$this->_emprunteur->getReservationAt(1)->getExemplaire()->getNoNotice());
}
......@@ -663,10 +669,10 @@ class NanookGetEmprunteurWithErrorTest extends NanookTestCase {
->answers(NanookFixtures::xmlGetPatronError());
$emprunteur = $this->_service->getEmprunteur(
Class_Users::getLoader()
->newInstance()
->setIdSigb('666')
);
Class_Users::getLoader()
->newInstance()
->setIdSigb('666')
);
$this->assertNotNull($emprunteur);
$this->assertEmpty($emprunteur->getReservations());
$this->assertEmpty($emprunteur->getPretsEnRetard());
......@@ -676,9 +682,9 @@ class NanookGetEmprunteurWithErrorTest extends NanookTestCase {
class NanookGetEmprunteurWithoutIdSigbTest extends NanookTestCase {
class NanookGetEmprunteurAuthenticateTest extends NanookTestCase {
/** @test */
public function shouldAuthenticate() {
public function withRightUsernameAndPasswordUserShouldAuthenticateButNotBeValid() {
$this->_mock_web_client
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/AuthenticatePatron/username/90175000410218/password/1989')
......@@ -689,12 +695,37 @@ class NanookGetEmprunteurWithoutIdSigbTest extends NanookTestCase {
->answers(NanookFixtures::xmlGetPatronError());
$emprunteur = $this->_service->getEmprunteur($user = Class_Users::newInstance()
->setLogin('90175000410218')
->setPassword('1989'));
->setLogin('90175000410218')
->setPassword('1989'));
$this->assertNotNull($emprunteur);
$this->assertEquals(1, $user->getIdSigb());
$this->assertFalse($emprunteur->isValid());
}
/** @test */
public function withWrongPasswordEmprunteurShouldNotBeValid() {
$this->_mock_web_client
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/AuthenticatePatron/username/90175000410218/password/1')
->answers('<?xml version="1.0" encoding="UTF-8"?><AuthenticatePatron><error>PatronNotFound</error></AuthenticatePatron>')
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/GetPatronInfo/patronId/1')
->answers(NanookFixtures::xmlGetPatronChristelDelpeyroux());
$emprunteur = $this->_service->getEmprunteur($user = Class_Users::newInstance()
->setLogin('90175000410218')
->setPassword('1989')
->setIdSigb(1));
$this->assertNotNull($emprunteur);
$this->assertEquals(1, $user->getIdSigb());
$this->assertFalse($emprunteur->isValid());
}
}
......@@ -713,10 +744,10 @@ class NanookGetEmprunteurPBTest extends NanookTestCase {
->answers(NanookFixtures::xmlGetPatronPB());
$this->_emprunteur = $this->_service->getEmprunteur(
Class_Users::getLoader()
->newInstance()
->setIdSigb(555)
);
Class_Users::getLoader()
->newInstance()
->setIdSigb(555)
);
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Exemplaire')
->whenCalled('findFirstBy')
->answers(null);
......@@ -750,8 +781,8 @@ class NanookOperationsTest extends NanookTestCase {
$this->_service->prolongerPret(
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
'196895'
)
);
)
);
}
......@@ -767,8 +798,8 @@ class NanookOperationsTest extends NanookTestCase {
$this->_service->prolongerPret(
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
'196895'
)
);
)
);
}
......@@ -784,7 +815,7 @@ class NanookOperationsTest extends NanookTestCase {
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
Class_Exemplaire::getLoader()->newInstance()->setIdOrigine('196895'),
'3'
));
));
}
......@@ -800,7 +831,7 @@ class NanookOperationsTest extends NanookTestCase {
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
Class_Exemplaire::getLoader()->newInstance()->setIdOrigine('196895'),
'Site Principal'
));
));
}
......@@ -815,7 +846,7 @@ class NanookOperationsTest extends NanookTestCase {
$this->_service->supprimerReservation(
Class_Users::getLoader()->newInstance()->setIdSigb('1'),
'196895'
));
));
}
......@@ -830,6 +861,6 @@ class NanookOperationsTest extends NanookTestCase {
$this->_service->supprimerReservation(
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
'196895'
));
));
}
}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment