Skip to content
Snippets Groups Projects
Commit 6222af7f authored by efalcy's avatar efalcy
Browse files

Merge branch 'hotline#80947_agenda_externe' into 'hotline%2380947_agenda_externe_options'

Hotline#80947 agenda externe

See merge request !3011
parents 8a55bb96 45c5d469
Branches
Tags
4 merge requests!3297WIP: Master,!3047Hotline,!3013Hotline%2380947 agenda externe options,!3011Hotline#80947 agenda externe
Pipeline #6379 passed with stage
in 33 minutes and 22 seconds
- ticket #80947 : Agenda externe : ne met pas à jour les articles déjà présent dans la base.
\ No newline at end of file
......@@ -27,7 +27,7 @@ class Class_ExternalAgendaLoader extends Storm_Model_Loader {
$results = $agenda->import();
$logger->log($agenda->getLabel().":\n");
$logger->log($agenda->_("Nombre d\'événements créés : %s\n",count($results['new'])));
$logger->log($agenda->_("Nombre d\'événements mis à jour : %s\n",count($results['update'])));
$logger->log($agenda->_("Nombre d\'événements non mis à jour : %s\n",count($results['update'])));
}
}
}
......@@ -62,7 +62,7 @@ class Class_ExternalAgenda extends Storm_Model_Abstract {
$events = $service->import($this);
$results['new'] = $events->select('isNew');
$results['update'] = $events->reject('isNew');
$events->eachDo('save');
$results['new']->eachDo('save');
return $results;
}
......
......@@ -98,7 +98,89 @@ class Class_Batch_ExternalAgendasBatchSimpleTest extends Class_Batch_ExternalAge
/** @test */
public function logShouldDisplayNumberOfCreatedEvents() {
$this->assertEquals("Extra Agenda:\nNombre d\'événements créés : 4\nNombre d\'événements mis à jour : 0\n",$this->_log);
$this->assertEquals("Extra Agenda:\nNombre d\'événements créés : 4\nNombre d\'événements non mis à jour : 0\n",$this->_log);
}
}
class Class_Batch_ExternalAgendasBatchRewriteTest extends Class_Batch_ExternalAgendasBatchTestCase {
protected $_batch;
public function setUp() {
parent::setUp();
$this->valleiry = $this->fixture('Class_Bib',
['id' => 1,
'libelle' => 'Valleiry']);
$events_category = $this->fixture('Class_ArticleCategorie',
['id' => 1,
'libelle' => 'Events',
'bib' => $this->valleiry]);
$this->fixture('Class_Article',
['id' => 1,
'titre' => 'Jeux coopératifs',
'contenu' => 'changement de contenu',
'events_debut' => "2016-05-25 08:30",
'events_fin' => "2016-05-25 10:00",
'indexation' => 1,
'cacher_titre' => 0,
'date_maj' => "2018-04-16 09:33:58",
'date_creation' => "2016-04-16 09:33:58",
'status' => 1,
'id_cat' => 3,
'id_origine' => "68390f0f2752ba7664c05b00d1b51714",
'repository_origine' => "External_Agenda:34",
'refus_message' =>"L'article a été refusé."
]);
$this->fixture('Class_ExternalAgenda',
['id' => 1,
'label' => 'Personal Agenda',
'url' => 'http://my.server.com/calendar.ics',
'autoharvest' => 0,
'status' => Class_Article::STATUS_VALIDATED,
'category' => $events_category]);
$this->fixture('Class_ExternalAgenda',
['id' => 34,
'label' => 'Extra Agenda',
'url' => 'http://external.agenda.com/export?type=ics',
'category' => $events_category,
'id_lieu' => 0,
'autoharvest' => 1,
'status' => Class_Article::STATUS_VALIDATED]);
Class_WebService_ICalendar::setDefaultHttpClient($this->mock()
->whenCalled('open_url')
->with('http://external.agenda.com/export?type=ics')
->answers(file_get_contents(__DIR__.'/ical-event-second.ics')));
$this->_batch = new Class_Batch_ExternalAgenda();
$this->_batch->setLogger($this->getLogger());
$this->_batch->run();
}
/** @test */
public function labelShouldBeHarvestExternalAgenda() {
$this->assertEquals('Moissonner les agendas externes', $this->_batch->getLabel());
}
/** @test */
public function logShouldDisplayNumberOfCreatedEvents() {
$this->assertEquals("Extra Agenda:\nNombre d\'événements créés : 3\nNombre d\'événements non mis à jour : 1\n",$this->_log);
}
/** @test */
public function articleJeuxCooperatifShouldKeepModifiedContent() {
$this->assertEquals('changement de contenu', Class_Article::find(1)->getContenu());
}
}
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