Skip to content
Snippets Groups Projects
Commit 5bdc8601 authored by efalcy's avatar efalcy
Browse files

Formulaires : association Article

parent 16d52f6f
Branches
Tags
No related merge requests found
...@@ -21,8 +21,9 @@ ...@@ -21,8 +21,9 @@
class FormulaireController extends ZendAfi_Controller_Action { class FormulaireController extends ZendAfi_Controller_Action {
public function addAction() { public function addAction() {
$formulaire = new Class_Formulaire(); $formulaire = new Class_Formulaire();
$formulaire->setData(serialize( $this->_request->getPost())) $formulaire->setData(serialize($this->_request->getPost()))
->setUser(Class_Users::getIdentity()) ->setUser(Class_Users::getIdentity())
->setIdArticle($this->_request->getParam('id_article'))
->save(); ->save();
} }
......
...@@ -394,7 +394,12 @@ class Class_Article extends Storm_Model_Abstract { ...@@ -394,7 +394,12 @@ class Class_Article extends Storm_Model_Abstract {
'avis_users' => ['model' => 'Class_Avis', 'avis_users' => ['model' => 'Class_Avis',
'role' => 'article', 'role' => 'article',
'dependents' => 'delete', 'dependents' => 'delete',
'order' => 'date_avis desc']]; 'order' => 'date_avis desc'],
'formulaires' => ['model' => 'Class_Formulaire',
'role' => 'article',
'order' => 'date_creation desc']
];
protected $_belongs_to = ['categorie' => ['model' => 'Class_ArticleCategorie', protected $_belongs_to = ['categorie' => ['model' => 'Class_ArticleCategorie',
'referenced_in' => 'id_cat'], 'referenced_in' => 'id_cat'],
...@@ -734,7 +739,7 @@ class Class_Article extends Storm_Model_Abstract { ...@@ -734,7 +739,7 @@ class Class_Article extends Storm_Model_Abstract {
$replaced_form = preg_replace(['/(<form[^>]+)action=[\"\'][^\"\']+\"? /', $replaced_form = preg_replace(['/(<form[^>]+)action=[\"\'][^\"\']+\"? /',
'/(<form )/'], '/(<form )/'],
['$1 ', ['$1 ',
'$1action="'.BASE_URL.'/formulaire/add" '], '$1action="'.BASE_URL.'/formulaire/add/id_article/'.$this->getId().'" '],
$contenu); $contenu);
$typesubmit = 'type=[\'\"](?:submit|button)[\'\"]'; $typesubmit = 'type=[\'\"](?:submit|button)[\'\"]';
......
...@@ -24,7 +24,10 @@ class Class_Formulaire extends Storm_Model_Abstract { ...@@ -24,7 +24,10 @@ class Class_Formulaire extends Storm_Model_Abstract {
protected $_table_name='formulaires'; protected $_table_name='formulaires';
protected $_belongs_to = ['user' => ['model' => 'Class_Users', protected $_belongs_to = ['user' => ['model' => 'Class_Users',
'referenced_in' => 'id_user']]; 'referenced_in' => 'id_user'],
'article' => ['model' => 'Class_Article',
'referenced_in' => 'id_article']];
protected $_default_attribute_values = ['data' => 'a:0:{}']; protected $_default_attribute_values = ['data' => 'a:0:{}'];
......
...@@ -23,6 +23,9 @@ abstract class FormulaireControllerPostActionTestCase extends Admin_AbstractCont ...@@ -23,6 +23,9 @@ abstract class FormulaireControllerPostActionTestCase extends Admin_AbstractCont
public function setUp() { public function setUp() {
parent::setUp(); parent::setUp();
Class_Article::newInstanceWithId(45, ['titre' => 'Contactez nous']);
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Formulaire') Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Formulaire')
->whenCalled('save') ->whenCalled('save')
->willDo(function ($formulaire) { ->willDo(function ($formulaire) {
...@@ -52,7 +55,7 @@ class FormulaireControllerPostActionTest extends FormulaireControllerPostActionT ...@@ -52,7 +55,7 @@ class FormulaireControllerPostActionTest extends FormulaireControllerPostActionT
ZendAfi_Auth::getInstance()->logUser($user); ZendAfi_Auth::getInstance()->logUser($user);
$this->postDispatch('/formulaire/add', $this->postDispatch('/formulaire/add/id_article/45',
['nom' => 'Tinguette' , ['nom' => 'Tinguette' ,
'prenom' => 'Quentin' ] 'prenom' => 'Quentin' ]
,true); ,true);
...@@ -80,12 +83,17 @@ class FormulaireControllerPostActionTest extends FormulaireControllerPostActionT ...@@ -80,12 +83,17 @@ class FormulaireControllerPostActionTest extends FormulaireControllerPostActionT
$this->new_formulaire->getData()); $this->new_formulaire->getData());
} }
/** @test */ /** @test */
public function saveFormulaireShouldSaveUserIdIfConnected() { public function saveFormulaireShouldSaveUserIdIfConnected() {
$this->assertEquals(23, $this->new_formulaire->getIdUser()); $this->assertEquals(23, $this->new_formulaire->getIdUser());
} }
/** @test */
public function articleShouldBeContactezNous() {
$this->assertEquals('Contactez nous', $this->new_formulaire->getArticle()->getTitre());
}
} }
......
...@@ -42,14 +42,14 @@ class ArticleFormulaireInternalTest extends Storm_Test_ModelTestCase { ...@@ -42,14 +42,14 @@ class ArticleFormulaireInternalTest extends Storm_Test_ModelTestCase {
/** @test */ /** @test */
public function formIdFormActionShouldBeFormulaireAdd() { public function formIdFormActionShouldBeFormulaireAdd() {
$this->assertContains('<form action="'.BASE_URL.'/formulaire/add" id="idform"', $this->assertContains('<form action="'.BASE_URL.'/formulaire/add/id_article/2" id="idform"',
$this->_article->getContenu()); $this->_article->getContenu());
} }
/** @test */ /** @test */
public function emptyFormActionShouldBeFormulaireAdd() { public function emptyFormActionShouldBeFormulaireAdd() {
$this->assertContains('<form action="'.BASE_URL.'/formulaire/add" method="POST">', $this->assertContains('<form action="'.BASE_URL.'/formulaire/add/id_article/2" method="POST">',
$this->_article->getContenu()); $this->_article->getContenu());
} }
......
...@@ -24,7 +24,7 @@ class FormulaireTest extends Storm_Test_ModelTestCase { ...@@ -24,7 +24,7 @@ class FormulaireTest extends Storm_Test_ModelTestCase {
parent::setUp(); parent::setUp();
$this->_fantomas = Class_Users::newInstanceWithId(23, ['login' => 'fantomas']); $this->_fantomas = Class_Users::newInstanceWithId(23, ['login' => 'fantomas']);
$this->_formulaire = Class_Formulaire::newInstanceWithId(2, ['id_user' => 23]); $this->_formulaire = Class_Formulaire::newInstanceWithId(2, ['id_user' => 23]);
$this->_article = Class_Article::newInstanceWithId(88, []);
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Formulaire') Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Formulaire')
->whenCalled('findAllBy') ->whenCalled('findAllBy')
->answers([$this->_formulaire]); ->answers([$this->_formulaire]);
...@@ -43,4 +43,13 @@ class FormulaireTest extends Storm_Test_ModelTestCase { ...@@ -43,4 +43,13 @@ class FormulaireTest extends Storm_Test_ModelTestCase {
$this->assertEquals([$this->_formulaire], $this->assertEquals([$this->_formulaire],
$this->_fantomas->getFormulaires()); $this->_fantomas->getFormulaires());
} }
/** @test */
public function articleShouldHaveOneFormulaire() {
$this->assertEquals([$this->_formulaire],
$this->_article->getFormulaires());
}
} }
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