Skip to content

Commit

Permalink
Added unittest for eef87ee.
Browse files Browse the repository at this point in the history
  • Loading branch information
Yosuke Basuke Suzuki committed Sep 23, 2011
1 parent eef87ee commit d9c48b0
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions cake/tests/cases/libs/model/model_validation.test.php
Expand Up @@ -643,6 +643,48 @@ function testValidatesWithModelsAndSaveAll() {
$this->assertEqual($joinRecords, 0, 'Records were saved on the join table. %s');
}

/**
* test that saveAll and with models at initial insert (no id has set yet)
* with validation interact well
*
* @return void
*/
function testValidatesWithModelsAndSaveAllWithoutId() {
$data = array(
'Article' => array(
'title' => 'Extra Fields',
'body' => 'Extra Fields Body',
'published' => '1'
),
'Comment' => array(
array('word' => 'Hello'),
array('word' => 'World'),
)
);
$Article =& new Article();
$Comment =& $Article->Comment;

$Comment->validate = array('article_id' => array('rule' => 'numeric'));

$Article->create();
$result = $Article->saveAll($data, array('validate' => 'only'));
$this->assertTrue($result);

$Article->create();
$result = $Article->saveAll($data, array('validate' => 'first'));
$this->assertTrue($result);
$this->assertFalse(is_null($Article->id));

$id = $Article->id;
$count = $Article->find('count', array('conditions' => array('Article.id' => $id)));
$this->assertIdentical($count, 1);

$count = $Comment->find('count', array(
'conditions' => array('Comment.article_id' => $id)
));
$this->assertEqual($count, count($data['Comment']));
}

/**
* Test that missing validation methods trigger errors in development mode.
* Helps to make developement easier.
Expand Down

0 comments on commit d9c48b0

Please sign in to comment.