Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

comp mod for saveAll()

better approach

test case to assert saveAll still behaves like previous versions
  • Loading branch information...
commit 1e2ac0b9c8f8b00e322242bb24dca9e546d59fba 1 parent 2e15689
@dereuromark dereuromark authored
View
2  lib/Cake/Model/Model.php
@@ -2017,7 +2017,7 @@ protected function _prepareUpdateFields($data) {
* @link http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-array
* @link http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveall-array-data-null-array-options-array
*/
- public function saveAll($data, $options = array()) {
+ public function saveAll($data = array(), $options = array()) {
$options = array_merge(array('validate' => 'first'), $options);
if (Hash::numeric(array_keys($data))) {
if ($options['validate'] === 'only') {
View
28 lib/Cake/Test/Case/Model/ModelWriteTest.php
@@ -4726,6 +4726,32 @@ public function testSaveAllHasManyValidationOnly() {
}
/**
+ * test that saveAll still behaves like previous versions (does not necessarily need a first argument)
+ *
+ * @return void
+ */
+ public function testSaveAllWithSet() {
+ $this->loadFixtures('Article', 'Tag', 'Comment', 'User', 'ArticlesTag');
+ $data = array(
+ 'Article' => array(
+ 'user_id' => 1,
+ 'title' => 'Article Has and belongs to Many Tags'
+ ),
+ 'Tag' => array(
+ 'Tag' => array(1, 2)
+ ),
+ 'Comment' => array(
+ array(
+ 'comment' => 'Article comment',
+ 'user_id' => 1
+ )));
+ $Article = new Article();
+ $Article->set($data);
+ $result = $Article->saveAll();
+ $this->assertFalse(empty($result));
+ }
+
+/**
* test that saveAll behaves like plain save() when supplied empty data
*
* @link http://cakephp.lighthouseapp.com/projects/42648/tickets/277-test-saveall-with-validation-returns-incorrect-boolean-when-saving-empty-data
@@ -4740,7 +4766,7 @@ public function testSaveAllEmptyData() {
$this->assertFalse(empty($result));
$model = new ProductUpdateAll();
- $result = $model->saveAll(array());
+ $result = $model->saveAll();
$this->assertFalse($result);
}
Please sign in to comment.
Something went wrong with that request. Please try again.