Skip to content
Snippets Groups Projects
Commit 923dac49 authored by Patrick Barroca's avatar Patrick Barroca :grin:
Browse files

hotline #82087 : KindsTask use parent class common logic

parent 1fde3efc
Branches
Tags
3 merge requests!2911Master,!2910Hotline,!2906Hotline#82087 les caracteres accentues des genres de nanook sont mal lus par bokeh
Pipeline #5369 passed with stage
in 31 minutes and 58 seconds
......@@ -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]);
}
......
......@@ -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());
}
......
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