diff --git a/VERSIONS_HOTLINE/#27951 b/VERSIONS_HOTLINE/#27951 new file mode 100644 index 0000000000000000000000000000000000000000..9c4f176ec6e486bf3511bbed4132ae4c128437d6 --- /dev/null +++ b/VERSIONS_HOTLINE/#27951 @@ -0,0 +1 @@ +ticket #27951: Supprimer un album supprime la notice associée diff --git a/library/Class/Album.php b/library/Class/Album.php index cc00e5fd89ef648eab61a650972009bc5db22b2a..ff29bc74e12ea1129487ac0daec4f6556bedb68e 100644 --- a/library/Class/Album.php +++ b/library/Class/Album.php @@ -892,7 +892,8 @@ class Class_Album extends Storm_Model_Abstract { public function beforeDelete() { parent::beforeDelete(); - $this->deleteFiles(); + $this->deleteRecord() + ->deleteFiles(); } @@ -968,6 +969,14 @@ class Class_Album extends Storm_Model_Abstract { } + public function deleteRecord() { + if ($notice = $this->getNotice()) + $notice->delete(); + + return $this; + } + + /** * Ceci échouera si les reps ne sont pas vides */ diff --git a/tests/library/Class/AlbumTest.php b/tests/library/Class/AlbumTest.php index 8ce133cf0ec2f9beeab8f17e05b432f2d2bd0a91..5206811c290963098c5ec79ebb9b9f682027683c 100644 --- a/tests/library/Class/AlbumTest.php +++ b/tests/library/Class/AlbumTest.php @@ -681,4 +681,41 @@ class AlbumHarlockSortingResourcesTest extends AlbumHarlockTestCase { } } + + + +class AlbumDeletingTestCase extends Storm_Test_ModelTestCase { + protected $_storm_default_to_volatile = true; + + public function setUp() { + parent::setUp(); + + $this->fixture('Class_Album', + ['id' => 12066, + 'notice_id' => 3255060, + 'type_doc_id' => Class_TypeDoc::NUMILOG, + 'titre' => 'Le chemin de l\'esperance']); + + $this->fixture('Class_Notice', + ['id' => 3255060, + 'id_notice' => 3255060, + 'alpha_titre' => 'CHEMIN DE L ESPERANCE']); + + + Class_Album::find(12066)->delete(); + } + + + /** @test */ + public function albumChemindeLesperanceShouldBedeleted() { + $this->assertNull(Class_Album::find(12066)); + } + + + /** @test */ + public function deletingAlbumChemindeLesperanceShouldDeleteItsRecord() { + $this->assertNull(Class_Notice::find(3255060)); + } +} + ?> \ No newline at end of file