Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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
Mark S. dereuromark authored
2  lib/Cake/Model/Model.php
View
@@ -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') {
28 lib/Cake/Test/Case/Model/ModelWriteTest.php
View
@@ -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.