Skip to content
Snippets Groups Projects
Commit 04711fa8 authored by Arthur Suzuki's avatar Arthur Suzuki
Browse files

Merge branch...

Merge branch 'hotline#169167_prolongation_de_nouveaute_impossible_adapter_le_message_au_contexte' into 'master'

hotline#169167 : update nanook error codes for renewals

See merge request !4697
parents 42b61dd2 8c362440
Branches
Tags
1 merge request!4697hotline#169167 : update nanook error codes for renewals
Pipeline #22042 passed with stage
in 20 minutes and 59 seconds
- correctif #169167 : SIGB Nanook : Mise à jour des messages d'erreurs sur les prolongations de prêts.
\ No newline at end of file
......@@ -36,21 +36,26 @@ class Class_Webservice_SIGB_Nanook_Service
'PatronNoSubscription' => $this->_('Réservation impossible, abonnement échu.'),
'PatronHoldRecordForbidden' => $this->_('Pas de droit de réservation pour ce document.'),
'PatronMaxHoldsReached' => $this->_('Quota atteint pour ce type de document.'),
'PatronAlreadyLoanOnHoldTitle' => $this->_('Réservation impossible, document déjà en prêt sur la carte de l\'abonné'),
'PatronHoldNoveltyRecordForbidden' => $this->_('Pas de droit de réservation pour cette nouveauté.'),
'PatronMaxHoldsNoveltyReached' => $this->_('(quotas max pour les nouveautés)'),
'PatronPasswordNotSecure' => $this->_('Le mot de passe choisi est trop simple.'),
'OpacAvailableItemNotHoldable' => $this->_('Document disponible : Pas de droit de réservation d\'un document disponible depuis l\'Opac.'),
'PatronForbiddenHold' => $this->_('Réservation interdite pour l\'abonné.'),
'PatronReadLevelForbidden' => $this->_('Réservation impossible : Niveau de lecture interdit pour cet abonné'),
'NotHoldable' => $this->_('Document non réservable'),
'RecordNotHoldableForPickupLocation' => $this->_('Exemplaire non réservable pour ce site de transfert (interdiction des transferts).'),
'RenewMaxDateReached' => $this->_('Prolongation impossible, le délai est dépassé.'),
'RenewNoSubscription' => $this->_('Prolongation impossible, votre abonnement est échu.'),
'RenewRecordForbidden' => $this->_('Prolongation interdite pour ce type de document.'),
'RenewRecordHold' => $this->_('Prolongation impossible, le document est réservé.'),
'RenewLoanNotFound' => $this->_('Prolongation impossible, pas de prêt trouvé sur cet exemplaire.'),
'RenewNoNewDate' => $this->_('Prolongation sans effet, pas de nouvelle date de retour.'),
'RenewNoNewDueDate' => $this->_('Prolongation sans effet, pas de nouvelle date de retour.'),
'MaxRenewReached' => $this->_('Prolongation impossible, le nombre maximum de prolongations est atteint.'),
'MaxRenewNoveltyReached' => $this->_('Prolongation impossible, nombre de prolongations maximal atteint pour ce prêt d\'une nouveauté.'),
'RecordNotFound' => $this->_('Notice non trouvée'),
'PatronNotFound' => $this->_('Abonné non trouvé'),
'PickupLocationNotFound' => $this->_('Réservation impossible : Site de retrait non trouvé'),
'HoldLocationOrderNotFound' => $this->_('Erreur paramétrage priorité site de retrait'),
'PatronAlreadyRegistered' => $this->_('Préinscription impossible, cet abonné existe déjà'),
'PatronAlreadyHoldTitle' => $this->_('Ce document est déjà réservé sur votre carte')
......
......@@ -54,6 +54,22 @@ class NanookFixtures {
}
public static function xmlReadLevelHoldTitleError() : string {
return '<?xml version="1.0" encoding="UTF-8"?>
<HoldTitle>
<error>PatronReadLevelForbidden</error>
</HoldTitle>';
}
public static function xmlPickupLocationNotFoundHoldTitleError() : string {
return '<?xml version="1.0" encoding="UTF-8"?>
<HoldTitle>
<error>PickupLocationNotFound</error>
</HoldTitle>';
}
/** @return string */
public static function xmlHoldTitleSuccess() {
return '<?xml version="1.0" encoding="UTF-8"?>
......@@ -89,10 +105,10 @@ class NanookFixtures {
/** @return string */
public static function xmlRenewNoNewDateError() {
public static function xmlRenewNoNewDueDateError() {
return '<?xml version="1.0" encoding="UTF-8"?>
<RenewLoan>
<error>RenewNoNewDate</error>
<error>RenewNoNewDueDate</error>
</RenewLoan>';
}
......@@ -106,6 +122,14 @@ class NanookFixtures {
}
public static function xmlRenewLoanMaxRenewNoveltyReachedError() : string {
return '<?xml version="1.0" encoding="UTF-8"?>
<RenewLoan>
<error>MaxRenewNoveltyReached</error>
</RenewLoan>';
}
/** @return string */
public static function xmlRenewLoanSucces() {
return '<?xml version="1.0" encoding="UTF-8"?>
......
......@@ -1210,10 +1210,28 @@ class NanookOperationsTest extends NanookTestCase {
$this->_mock_web_client
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/RenewLoan/patronId/1/itemId/196895')
->answers(NanookFixtures::xmlRenewNoNewDateError());
->answers(NanookFixtures::xmlRenewNoNewDueDateError());
$this->assertEquals(
array('statut' => false, 'erreur' => 'Prolongation sans effet, pas de nouvelle date de retour.'),
['statut' => false, 'erreur' => 'Prolongation sans effet, pas de nouvelle date de retour.'],
$this->_service->prolongerPret(
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
'196895'
)
);
}
/** @test */
public function prolongerPretShouldReturnMaxRenewNoveltyFailure() {
$this->_mock_web_client
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/RenewLoan/patronId/1/itemId/196895')
->answers(NanookFixtures::xmlRenewLoanMaxRenewNoveltyReachedError());
$this->assertEquals(
['statut' => false,
'erreur' => 'Prolongation impossible, nombre de prolongations maximal atteint pour ce prêt d\'une nouveauté.'],
$this->_service->prolongerPret(
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
'196895'
......@@ -1266,7 +1284,7 @@ class NanookOperationsTest extends NanookTestCase {
->with('http://localhost:8080/afi_Nanook/ilsdi/service/HoldTitle/bibId/196895/patronId/1/pickupLocation/Site%20Principal')
->answers(NanookFixtures::xmlHoldTitleError());
$this->assertEquals(array('statut' => false, 'erreur' => 'Réservation impossible'),
$this->assertEquals(['statut' => false, 'erreur' => 'Document non réservable'],
$this->_service->reserverExemplaire(
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
Class_Exemplaire::getLoader()->newInstance()->setIdOrigine('196895'),
......@@ -1293,6 +1311,38 @@ class NanookOperationsTest extends NanookTestCase {
}
/** @test */
public function reserverExemplaireShouldReturnFailureIfReadLevelErrors() {
$this->_mock_web_client
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/HoldTitle/bibId/196895/patronId/1/pickupLocation/Site%20Principal')
->answers(NanookFixtures::xmlReadLevelHoldTitleError());
$this->assertEquals(['statut' => false, 'erreur' => 'Réservation impossible : Niveau de lecture interdit pour cet abonné'],
$this->_service->reserverExemplaire(
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
Class_Exemplaire::getLoader()->newInstance()->setIdOrigine('196895'),
'Site Principal'
));
}
/** @test */
public function reserverExemplaireShouldReturnFailureIfPickupLocationErrors() {
$this->_mock_web_client
->whenCalled('open_url')
->with('http://localhost:8080/afi_Nanook/ilsdi/service/HoldTitle/bibId/196895/patronId/1/pickupLocation/Site%20Principal')
->answers(NanookFixtures::xmlPickupLocationNotFoundHoldTitleError());
$this->assertEquals(['statut' => false, 'erreur' => 'Réservation impossible : Site de retrait non trouvé'],
$this->_service->reserverExemplaire(
Class_Users::getLoader()->newInstance() ->setIdSigb('1'),
Class_Exemplaire::getLoader()->newInstance()->setIdOrigine('196895'),
'Site Principal'
));
}
/** @test */
public function supprimerReservationShouldReturnSuccessIfNoErrors() {
$this->_mock_web_client
......
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