diff --git a/library/Class/Article.php b/library/Class/Article.php index 8d4bd17770e171e6a2ac5103f5a928b709ac134d..46ab420645a8f7dc27e5a07804be2de0a916ce1b 100644 --- a/library/Class/Article.php +++ b/library/Class/Article.php @@ -390,7 +390,7 @@ class ArticleLoader extends Storm_Model_Loader { class Class_Article extends Storm_Model_Abstract { - use Trait_TreeViewableItem, Trait_HasManyDomaines; + use Trait_TreeViewableItem, Trait_HasManyDomaines, Trait_TimeSource; const END_TAG='{FIN}'; @@ -1172,6 +1172,47 @@ class Class_Article extends Storm_Model_Abstract { public static function hasEventForMonth($month) { + var_dump(date("d-m-Y")); + var_dump( date("d-m-Y", + mktime(0, + 0, + 0, + $month, + 1, + (date('m')>$month) ? date('Y') + 1 : date('Y') ))); + var_dump( date("d-m-Y", + mktime(0, + 0, + 0, + $month + 1, + 0, + (date('m')>$month) + ? date('Y') +1 + : date('Y') ))); + + var_dump(count(array_merge(Class_Article::getArticlesByPreferences(['event_date' => + date("d-m-Y", + mktime(0, + 0, + 0, + $month, + 1, + (date('m')>$month) ? date('Y') + 1 : date('Y') )), + 'events_only'=>'true', + 'status' => 3]), + Class_Article::getArticlesByPreferences(['event_date' => + date("d-m-Y", + mktime(0, + 0, + 0, + $month + 1, + 0, + (date('m')>$month) + ? date('Y') +1 + : date('Y') )), + 'events_only'=>'true', + 'status' => 3])))); + return 0 < count(array_merge(Class_Article::getArticlesByPreferences(['event_date' => date("d-m-Y", mktime(0, @@ -1180,7 +1221,6 @@ class Class_Article extends Storm_Model_Abstract { $month, 1, (date('m')>$month) ? date('Y') + 1 : date('Y') )), - 'published' => true, 'events_only'=>'true', 'status' => 3]), Class_Article::getArticlesByPreferences(['event_date' => @@ -1193,7 +1233,6 @@ class Class_Article extends Storm_Model_Abstract { (date('m')>$month) ? date('Y') +1 : date('Y') )), - 'published' => true, 'events_only'=>'true', 'status' => 3]))); } diff --git a/tests/library/Class/ArticleTest.php b/tests/library/Class/ArticleTest.php index 5cd8a6483a6e3bb80c80e0a1b5e7d78affbbe4f2..f8f021105d1dd94b41bd3efab95c14c26b3ab864 100644 --- a/tests/library/Class/ArticleTest.php +++ b/tests/library/Class/ArticleTest.php @@ -954,6 +954,7 @@ class ArticleTestFixtures { } + Class EventsByMonthTest extends Storm_Test_ModelTestCase { public function setup() { parent::setup(); @@ -968,4 +969,60 @@ Class EventsByMonthTest extends Storm_Test_ModelTestCase { public function fevrierShouldNotContainsEvents() { $this->assertFalse(Class_Article::hasEventForMonth(2)); } +} + + + +Class EventsByMonthWithArticleTest extends Storm_Test_ModelTestCase { + public function setup() { + parent::setup(); + + $this->concert = Class_Article::getLoader() + ->newInstanceWithId(4) + ->setTitre('Erik Truffaz en concert') + ->setDescription('Venez nombreux') + ->setContenu('Ã Bonlieu') + ->setEventsDebut('2014-03-27') + ->setEventsFin('2014-03-27') + ->setLangue('fr') + ->setStatus(3); + + Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Article') + ->whenCalled('findAll') + ->answers([$this->concert]); + + } + + /** @test **/ + public function fevrierShouldNotContainsEvents() { + $this->assertFalse(Class_Article::hasEventForMonth(2)); + } +} + + +Class EventsByMonthWithArticleInMonthTest extends Storm_Test_ModelTestCase { + public function setup() { + parent::setup(); + + $concert = Class_Article::newInstanceWithId(4) + ->setTitre('Erik Truffaz en concert') + ->setContenu('Ã Bonlieu') + ->setEventsDebut('2014-03-15') + ->setEventsFin('2014-03-15') + ->setStatus(3); + + Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Article') + ->whenCalled('findAll') + ->answers([$concert]) + + ->whenCalled('getArticlesByPreferences') + ->answers([$concert]) + ; + + } + + /** @test **/ + public function marsShouldContainsEventErikTruffazEnConcert() { + $this->assertTrue(Class_Article::hasEventForMonth(3)); + } } \ No newline at end of file