From 4d37c1d964207f55a940b695cbd7675ce6dbfce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ANDRE=20s=C3=A9bastien?= <sandre@afi-sa.fr> Date: Mon, 4 Jul 2022 15:24:08 +0200 Subject: [PATCH] hotline : #159612 : add field mail and idabon for multimedia authenticate --- VERSIONS_HOTLINE/159612 | 1 + .../opac/controllers/MultimediaController.php | 8 +- .../controllers/MultimediaControllerTest.php | 238 +++++++++++++----- 3 files changed, 178 insertions(+), 69 deletions(-) create mode 100644 VERSIONS_HOTLINE/159612 diff --git a/VERSIONS_HOTLINE/159612 b/VERSIONS_HOTLINE/159612 new file mode 100644 index 00000000000..8bdd02d6e99 --- /dev/null +++ b/VERSIONS_HOTLINE/159612 @@ -0,0 +1 @@ + - correctif #159612 : Multimédia : rajouter la gestion des champs abonné email et numéro de carte \ No newline at end of file diff --git a/application/modules/opac/controllers/MultimediaController.php b/application/modules/opac/controllers/MultimediaController.php index 4237ad450ff..78f74604f8e 100644 --- a/application/modules/opac/controllers/MultimediaController.php +++ b/application/modules/opac/controllers/MultimediaController.php @@ -21,11 +21,12 @@ class MultimediaController extends ZendAfi_Controller_Action { private function _initInfosUser($user, $response) { - foreach (['id', 'login', 'password', 'nom', - 'prenom', 'date_debut', 'date_fin'] as $attribute) + foreach (['id', 'login', 'password', 'mail', 'nom', + 'prenom', 'date_debut', 'date_fin'] as $attribute) $response->$attribute = $user->$attribute; $response->groupes = $user->getUserGroupsLabels(); + $response->cardnumber = $user->getIdabon(); $response->date_naissance = $user->getDateNaissanceIso8601(); return $response; @@ -51,7 +52,6 @@ class MultimediaController extends ZendAfi_Controller_Action { $response->auth = 1; $this->_response->setBody(json_encode($response)); - } @@ -118,4 +118,4 @@ class MultimediaController extends ZendAfi_Controller_Action { $this->_response->setBody(json_encode($response)); } -} \ No newline at end of file +} diff --git a/tests/application/modules/opac/controllers/MultimediaControllerTest.php b/tests/application/modules/opac/controllers/MultimediaControllerTest.php index 7371ad0c893..6e5620b1b05 100644 --- a/tests/application/modules/opac/controllers/MultimediaControllerTest.php +++ b/tests/application/modules/opac/controllers/MultimediaControllerTest.php @@ -20,28 +20,29 @@ */ trait TMultimediaControllerAbonneFixtureHoldSuccessOnSept12 { + protected function _launch() { - $this->fixture('Class_Bib', + $this->fixture(Class_Bib::class, ['id' => 1, - 'ouvertures' => [$this->fixture('Class_Ouverture', + 'ouvertures' => [$this->fixture(Class_Ouverture::class, ['id' => 1, 'Jour' => '2012-09-12', 'horaires' => ['08:00', '12:00', '12:00', '18:00'], 'used_for' => Class_Ouverture::USED_FOR_MULTIMEDIA])]]); - $this->fixture('Class_Multimedia_Device', + $this->fixture(Class_Multimedia_Device::class, ['id' => 1, 'id_origine' => '1-1', - 'group' => $this->fixture('Class_Multimedia_DeviceGroup', + 'group' => $this->fixture(Class_Multimedia_DeviceGroup::class, ['id' => 1, - 'location' => $this->fixture('Class_Multimedia_Location', + 'location' => $this->fixture(Class_Multimedia_Location::class, ['id' => 1, 'id_origine' => 1, 'id_site' => 1]) ]) ]); - $this->onLoaderOfModel('Class_Multimedia_DeviceHold') + $this->onLoaderOfModel(Class_Multimedia_DeviceHold::class) ->whenCalled('getHoldOnDeviceAtTime') ->answers(Class_Multimedia_DeviceHold::newInstanceWithId(333) ->setIdUser($this->_user->getId()) @@ -56,6 +57,7 @@ trait TMultimediaControllerAbonneFixtureHoldSuccessOnSept12 { trait TMultimediaControllerAbonneFixtureWithUserLaurentInDevsAgiles { + protected function _initUser() { $this->_user = MultimediaControllerUsersFixtures::getLaurent(); $this->_group= 'Devs agiles'; @@ -63,10 +65,12 @@ trait TMultimediaControllerAbonneFixtureWithUserLaurentInDevsAgiles { } -abstract class MultimediaControllerAbstractTestCase extends AbstractControllerTestCase { - protected - $_storm_default_to_volatile=true, - $_json; + + +abstract class MultimediaControllerAbstractTestCase + extends AbstractControllerTestCase { + + protected $_json; /** * @param $url string @@ -74,13 +78,17 @@ abstract class MultimediaControllerAbstractTestCase extends AbstractControllerTe */ protected function getJson($url) { $this->dispatch($url, true); + return json_decode($this->_response->getBody()); } - } -abstract class MultimediaControllerAuthenticateTestCase extends MultimediaControllerAbstractTestCase { + + +abstract class MultimediaControllerAuthenticateTestCase + extends MultimediaControllerAbstractTestCase { + protected $_auth; public function setUp() { @@ -99,9 +107,11 @@ abstract class MultimediaControllerAuthenticateTestCase extends MultimediaContro public function tearDown() { ZendAfi_Auth::setInstance(null); + parent::tearDown(); } + /** * @param $user Class_Users */ @@ -124,10 +134,10 @@ abstract class MultimediaControllerAuthenticateTestCase extends MultimediaContro * @param $group_label string */ protected function _expectGroupForUser($user, $group_label) { - $this->fixture('Class_UserGroupMembership', + $this->fixture(Class_UserGroupMembership::class, ['id' => 1, 'user'=> $user, - 'user_group'=> $this->fixture('Class_UserGroup', + 'user_group'=> $this->fixture(Class_UserGroup::class, ['id' => 1, 'libelle' => $group_label, 'group_type' => Class_UserGroup::TYPE_MULTIMEDIA]) @@ -137,9 +147,14 @@ abstract class MultimediaControllerAuthenticateTestCase extends MultimediaContro } -class MultimediaControllerAuthenticateValidationTest extends MultimediaControllerAuthenticateTestCase { + + +class MultimediaControllerAuthenticateValidationTest + extends MultimediaControllerAuthenticateTestCase { + public function setUp() { parent::setUp(); + $this->_expectUserToLoad(MultimediaControllerUsersFixtures::getLaurent()); } @@ -188,9 +203,14 @@ class MultimediaControllerAuthenticateValidationTest extends MultimediaControlle } -class MultimeidaControllerAuthenticateMireilleTest extends MultimediaControllerAuthenticateTestCase { + + +class MultimeidaControllerAuthenticateMireilleTest + extends MultimediaControllerAuthenticateTestCase { + public function setUp() { parent::setUp(); + $user = MultimediaControllerUsersFixtures::getMireille(); $this->_expectUserToLoad($user); @@ -211,9 +231,14 @@ class MultimeidaControllerAuthenticateMireilleTest extends MultimediaControllerA } -class MultimediaControllerAuthenticateInviteNonAfiMultimediaTest extends MultimediaControllerAuthenticateTestCase { + + +class MultimediaControllerAuthenticateInviteNonAfiMultimediaTest + extends MultimediaControllerAuthenticateTestCase { + public function setUp() { parent::setUp(); + $user = MultimediaControllerUsersFixtures::getInvite(); $this->_expectUserToLoad($user, 'invite'); @@ -228,9 +253,14 @@ class MultimediaControllerAuthenticateInviteNonAfiMultimediaTest extends Multime } -class MultimediaControllerAuthenticateInviteAfiMultimediaTest extends MultimediaControllerAuthenticateTestCase { + + +class MultimediaControllerAuthenticateInviteAfiMultimediaTest + extends MultimediaControllerAuthenticateTestCase { + public function setUp() { parent::setUp(); + $user = MultimediaControllerUsersFixtures::getInvite(); $this->_expectUserToLoad($user, 'invite'); $this->_expectGroupForUser($user, 'Abonne multimedia'); @@ -252,15 +282,62 @@ class MultimediaControllerAuthenticateInviteAfiMultimediaTest extends Multimedia } -abstract class MultimediaControllerAuthenticateValidTestCase extends MultimediaControllerAuthenticateTestCase { - protected $_user; - protected $_group; + + +/* hotline: https://forge.afi-sa.net/issues/159612 */ +class MultimediaControllerAuthenticateLaurentMultimediaTest + extends MultimediaControllerAuthenticateTestCase { public function setUp() { - Class_Multimedia_Location::setTimeSource(new TimeSourceForTest('2012-09-12 09:00:00')); + parent::setUp(); + + $user = MultimediaControllerUsersFixtures::getLaurent(); + $this->_expectUserToLoad($user); + $this->_expectGroupForUser($user, 'Abonne multimedia'); + + $this->_json = $this->getJson('/multimedia/authenticate/login/laurent/password/afi'); + } + + + /** @test */ + public function shouldReturnAuthIs1() { + $this->assertEquals(1, $this->_json->auth); + } + + + /** @test */ + public function shouldReturnLoginIsLaurent() { + $this->assertEquals('laurent', $this->_json->login); + } + + /** @test */ + public function shouldReturnMail_lolo_mail_fr() { + $this->assertEquals('lolo@mail.fr', $this->_json->mail); + } + + + /** @test */ + public function shouldReturnCardNumber_bca2() { + $this->assertEquals('bca2', $this->_json->cardnumber); + } +} + + + + +abstract class MultimediaControllerAuthenticateValidTestCase + extends MultimediaControllerAuthenticateTestCase { + + protected + $_user, + $_group; + + public function setUp() { parent::setUp(); + Class_Multimedia_Location::setTimeSource(new TimeSourceForTest('2012-09-12 09:00:00')); + $this->_initUser(); $this->_expectUserToLoad($this->_user); $this->_expectGroupForUser($this->_user, $this->_group); @@ -270,61 +347,76 @@ abstract class MultimediaControllerAuthenticateValidTestCase extends MultimediaC $this->_launch(); } + + public function tearDown() { + Class_Multimedia_Location::setTimeSource(null); + + parent::tearDown(); + } + + protected function _initUser() {} } -abstract class MultimediaControllerChangeDateCurrentTestCase extends MultimediaControllerAuthenticateValidTestCase { + + +abstract class MultimediaControllerChangeDateCurrentTestCase + extends MultimediaControllerAuthenticateValidTestCase { protected function _launch() { Class_Multimedia_Location::setTimeSource(new TimeSourceForTest('2012-09-18 09:00:00')); $this->_json = $this->getJson('/multimedia/is-holdable-day/poste/1/site/1'); } - - - - public function tearDown() { - Class_Multimedia_Location::setTimeSource(null); - parent::tearDown(); - } } -class MultimediaControllerNotHoldableDay extends MultimediaControllerChangeDateCurrentTestCase { - use + +class MultimediaControllerNotHoldableDay + extends MultimediaControllerChangeDateCurrentTestCase { + use TMultimediaControllerAbonneFixtureHoldSuccessOnSept12, TMultimediaControllerAbonneFixtureWithUserLaurentInDevsAgiles; - /** @test */ - public function shouldNotHaveHolding() { - $this->assertEquals(0, $this->_json->holding); - } - + /** @test */ + public function shouldNotHaveHolding() { + $this->assertEquals(0, $this->_json->holding); + } } -abstract class MultimediaControllerCheckedHoldableDayTestCase extends MultimediaControllerAuthenticateValidTestCase { + + +abstract class MultimediaControllerCheckedHoldableDayTestCase + extends MultimediaControllerAuthenticateValidTestCase { + protected function _launch() { $this->_json = $this->getJson('/multimedia/is-holdable-day/poste/1/site/1'); } - } -class MultimediaControllerHoldableDay extends MultimediaControllerCheckedHoldableDayTestCase { + + +class MultimediaControllerHoldableDay + extends MultimediaControllerCheckedHoldableDayTestCase { use TMultimediaControllerAbonneFixtureHoldSuccessOnSept12, TMultimediaControllerAbonneFixtureWithUserLaurentInDevsAgiles; - /** @test */ - public function shouldHaveHoldDay() { - $this->assertEquals(1, $this->_json->holding); - } + /** @test */ + public function shouldHaveHoldDay() { + $this->assertEquals(1, $this->_json->holding); + } } -abstract class MultimediaControllerHoldedTestCase extends MultimediaControllerAuthenticateValidTestCase { + + +abstract class MultimediaControllerHoldedTestCase + extends MultimediaControllerAuthenticateValidTestCase { + protected function _launch() { $this->_json = $this->getJson(sprintf('/multimedia/hold-device/login/%s/password/%s/poste/1/site/1', $this->_user->getLogin(), @@ -332,7 +424,11 @@ abstract class MultimediaControllerHoldedTestCase extends MultimediaControllerA } } -class MultimediaControllerAuthenticateLaurentTest extends MultimediaControllerHoldedTestCase { + + + +class MultimediaControllerAuthenticateLaurentTest + extends MultimediaControllerHoldedTestCase { use TMultimediaControllerAbonneFixtureHoldSuccessOnSept12, TMultimediaControllerAbonneFixtureWithUserLaurentInDevsAgiles; @@ -342,7 +438,8 @@ class MultimediaControllerAuthenticateLaurentTest extends MultimediaControllerHo $this->assertFalse(property_exists($this->_json, 'error')); } - /** @test */ + + /** @test */ public function idShoudBe8() { $this->assertEquals('8', $this->_json->id); } @@ -403,22 +500,24 @@ class MultimediaControllerAuthenticateLaurentTest extends MultimediaControllerHo -class MultimediaControllerAuthenticateLaurentDeviceNotHeldByUserTest extends MultimediaControllerHoldedTestCase { + +class MultimediaControllerAuthenticateLaurentDeviceNotHeldByUserTest + extends MultimediaControllerHoldedTestCase { use TMultimediaControllerAbonneFixtureWithUserLaurentInDevsAgiles; protected function _launch() { - $this->onLoaderOfModel('Class_Multimedia_Location') + $this->onLoaderOfModel(Class_Multimedia_Location::class) ->whenCalled('findByIdOrigine') ->answers($location = Class_Multimedia_Location::newInstanceWithId(1) ->setAuthDelay(1) ->setAutohold(1)); - $this->onLoaderOfModel('Class_Multimedia_Device') + $this->onLoaderOfModel(Class_Multimedia_Device::class) ->whenCalled('findByIdOrigineAndLocation') ->answers(Class_Multimedia_Device::newInstanceWithId(1) ->setGroup(Class_Multimedia_DeviceGroup::newInstanceWithId(34)->setLocation($location))); - $this->onLoaderOfModel('Class_Multimedia_DeviceHold') + $this->onLoaderOfModel(Class_Multimedia_DeviceHold::class) ->whenCalled('getHoldOnDeviceAtTime') ->answers(Class_Multimedia_DeviceHold::newInstanceWithId(333) ->setIdUser(9878) @@ -445,20 +544,21 @@ class MultimediaControllerAuthenticateLaurentDeviceNotHeldByUserTest extends Mul public function authShouldBeZero() { $this->assertEquals('0', $this->_json->auth); } - } -class MultimediaControllerAuthenticateLaurentDeviceNotFoundTest extends MultimediaControllerHoldedTestCase { +class MultimediaControllerAuthenticateLaurentDeviceNotFoundTest + extends MultimediaControllerHoldedTestCase { use TMultimediaControllerAbonneFixtureWithUserLaurentInDevsAgiles; + protected function _launch() { - $this->onLoaderOfModel('Class_Multimedia_Location') + $this->onLoaderOfModel(Class_Multimedia_Location::class) ->whenCalled('findByIdOrigine') ->answers(Class_Multimedia_Location::newInstanceWithId(1)); - $this->onLoaderOfModel('Class_Multimedia_Device') + $this->onLoaderOfModel(Class_Multimedia_Device::class) ->whenCalled('findByIdOrigineAndLocation') ->answers(null); @@ -479,7 +579,10 @@ class MultimediaControllerAuthenticateLaurentDeviceNotFoundTest extends Multimed } -class MultimediaControllerAuthenticateArnaudTest extends MultimediaControllerHoldedTestCase { + + +class MultimediaControllerAuthenticateArnaudTest + extends MultimediaControllerHoldedTestCase { use TMultimediaControllerAbonneFixtureHoldSuccessOnSept12; protected function _initUser() { @@ -503,7 +606,8 @@ class MultimediaControllerAuthenticateArnaudTest extends MultimediaControllerHol -class MultimediaControllerAuthenticateBaptisteTest extends MultimediaControllerHoldedTestCase { +class MultimediaControllerAuthenticateBaptisteTest + extends MultimediaControllerHoldedTestCase { use TMultimediaControllerAbonneFixtureHoldSuccessOnSept12; protected function _initUser() { @@ -532,27 +636,31 @@ class MultimediaControllerAuthenticateBaptisteTest extends MultimediaControllerH } + + class MultimediaControllerUsersFixtures { use Storm_Test_THelpers; - protected static $_defaults = ['role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB, - 'id_site' => 1]; + protected static $_defaults = + ['role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB, + 'id_site' => 1]; public static function getLaurent() { - return static::fixture('Class_Users', + return static::fixture(Class_Users::class, array_merge(static::$_defaults, ['id' => 8, 'login' => "laurent", 'password' => "afi", 'nom' => 'laffont', 'prenom' => 'laurent', + 'mail' => 'lolo@mail.fr', 'idabon' => 'bca2', 'naissance' => '1978-02-17'])); } public static function getBaptiste() { - return static::fixture('Class_Users', + return static::fixture(Class_Users::class, array_merge(static::$_defaults, ['id' => 9, 'login' => "baptiste", @@ -565,7 +673,7 @@ class MultimediaControllerUsersFixtures { public static function getMireille() { - return static::fixture('Class_Users', + return static::fixture(Class_Users::class, array_merge(static::$_defaults, ['id' => 10, 'login' => "mireille", @@ -576,7 +684,7 @@ class MultimediaControllerUsersFixtures { public static function getInvite() { - return static::fixture('Class_Users', + return static::fixture(Class_Users::class, array_merge(static::$_defaults, ['id' => 12, 'login' => "invite", @@ -586,11 +694,11 @@ class MultimediaControllerUsersFixtures { public static function getArnaud() { - return static::fixture('Class_Users', + return static::fixture(Class_Users::class, array_merge(static::$_defaults, ['id' => 11, 'login' => "arnaud", 'password' => "lelache", 'idabon' => 'al'])); } -} \ No newline at end of file +} -- GitLab