From 923dac494f72b71eb426ecc24f2826fc72c7fd7b Mon Sep 17 00:00:00 2001 From: Patrick Barroca <pbarroca@afi-sa.fr> Date: Tue, 20 Nov 2018 15:59:23 +0100 Subject: [PATCH] hotline #82087 : KindsTask use parent class common logic --- .../Class/Cosmogramme/Generator/KindsTask.php | 40 +++---------------- .../PhasePrepareIntegrationsTest.php | 6 ++- 2 files changed, 10 insertions(+), 36 deletions(-) diff --git a/library/Class/Cosmogramme/Generator/KindsTask.php b/library/Class/Cosmogramme/Generator/KindsTask.php index 7e7790a9c19..955b3e7e5ca 100644 --- a/library/Class/Cosmogramme/Generator/KindsTask.php +++ b/library/Class/Cosmogramme/Generator/KindsTask.php @@ -27,46 +27,18 @@ class Class_Cosmogramme_Generator_KindsTask extends Class_Cosmogramme_Generator_ $_model_class = 'Class_CodifGenre'; - protected function _prepare($datas) { - $this->_kinds = []; - foreach($datas as $data) - $this->_prepareOne($data); - - return $this->_kinds; + protected function _isExcluded($elems) { + return 'BIB_' == substr($elems[0], 0, 4) || !trim($elems[1]); } - protected function _prepareOne($data) { - $elems = $this->_extract($data); - if ('BIB_' == substr($elems[0], 0, 4) || !trim($elems[1])) - return ''; - - $key = Class_Indexation::getInstance()->alphaMaj($elems[2]); - $code = trim($elems[1]); - $label = trim($elems[2]); - - if (array_key_exists($key, $this->_kinds)) { - $this->_kinds[$key]['codes'][] = $code; - return; - } - - $this->_kinds[$key] = ['codes' => [$code], 'label' => $label]; + protected function getLabel($elems) { + return trim($elems[2]); } - protected function _runOne($data) { - $label = $data['label']; - $codes = implode(';', $data['codes']); - - if (!$model = Class_CodifGenre::findFirstBy(['libelle' => $label])) - $model = Class_CodifGenre::newInstance(['libelle' => $label]); - - $model - ->setRegles($this->_getRuleFor($codes)) - ->setDateMaj($this->_date) - ->save(); - - return $this->renderOne([$codes, $label], $model); + protected function getCode($elems) { + return trim($elems[1]); } diff --git a/tests/library/Class/Cosmogramme/Integration/PhasePrepareIntegrationsTest.php b/tests/library/Class/Cosmogramme/Integration/PhasePrepareIntegrationsTest.php index bd09b098b83..7e5cb1920eb 100644 --- a/tests/library/Class/Cosmogramme/Integration/PhasePrepareIntegrationsTest.php +++ b/tests/library/Class/Cosmogramme/Integration/PhasePrepareIntegrationsTest.php @@ -395,7 +395,9 @@ class PhasePrepareIntegrationsNanookStandardTest ->whenCalled('getKindsOf')->with('foo') ->answers(['BIB_GENRES|SUPPORT|CODE|LIBELLE|DOC', '0|1|Music|f', - '0|2|Bande dessinée|f']) + '0|2|Bande dessinée|f', + '0|3|Bande dessinée|f', + '0|4|' . iconv('UTF-8', 'ISO-8859-1', 'Bande dessinée') . '|f',]) ->beStrict(); @@ -686,7 +688,7 @@ class PhasePrepareIntegrationsNanookStandardTest /** @test */ public function secondKindLabelShouldBeBandeDessinée() { - $this->assertNotNull($kind = Class_CodifGenre::findFirstBy(['regles' => '995$7=2'])); + $this->assertNotNull($kind = Class_CodifGenre::findFirstBy(['regles' => '995$7=2;3;4'])); $this->assertEquals('Bande dessinée', $kind->getLibelle()); } -- GitLab