From d9c48b0d34fcb6e00892683b6bac134d87f885ec Mon Sep 17 00:00:00 2001 From: Yosuke Basuke Suzuki Date: Fri, 23 Sep 2011 18:23:50 +0900 Subject: [PATCH] Added unittest for eef87ee74c2. --- .../libs/model/model_validation.test.php | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/cake/tests/cases/libs/model/model_validation.test.php b/cake/tests/cases/libs/model/model_validation.test.php index 6688186c190..2e2979b3ace 100644 --- a/cake/tests/cases/libs/model/model_validation.test.php +++ b/cake/tests/cases/libs/model/model_validation.test.php @@ -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.