Browse Source

add test for update()

euromark 10 years ago
parent
commit
8829e7a25c
2 changed files with 17 additions and 1 deletions
  1. 2 1
      Model/MyModel.php
  2. 15 0
      Test/Case/Model/MyModelTest.php

+ 2 - 1
Model/MyModel.php

@@ -1290,14 +1290,15 @@ class MyModel extends ShimModel {
 	 *
 	 * @param int $id
 	 * @param array $data
+	 * @param bool $validate
 	 * @return bool|array Success
 	 */
 	public function update($id, $data, $validate = false) {
-		$this->id = $id;
 		$options = [
 			'validate' => $validate,
 			'fieldList' => array_keys($data)
 		];
+		$data[$this->primaryKey] = $id;
 		return $this->save($data, $options);
 	}
 

+ 15 - 0
Test/Case/Model/MyModelTest.php

@@ -198,6 +198,21 @@ class MyModelTest extends MyCakeTestCase {
 	}
 
 	/**
+	 * @return void
+	 */
+	public function testUpdate() {
+		$record = ['title' => 'x', 'body' => 'bx'];
+		$result = $this->User->save($record);
+		$this->assertTrue((bool)$result);
+
+		$record['body'] = 'bxx';
+		$result = $this->User->update($result['User']['id'], ['body' => $record['body']]);
+		$this->assertTrue((bool)$result);
+
+		$this->assertSame($record['body'], $result['User']['body']);
+	}
+
+	/**
 	 * MyModelTest::testSaveAll()
 	 *
 	 * @return void