diff --git a/library/Class/Cosmogramme/Generator/KindsTask.php b/library/Class/Cosmogramme/Generator/KindsTask.php index 7e7790a9c19e9c48a909e0fdff1b1b9d25b4437a..955b3e7e5caaef8db161edd188202ebe942d0b5f 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 bd09b098b8321b2a2431c715914675f8bfb16612..7e5cb1920eb9db2ea96be86493cdc9b27a049fcc 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()); }