|
21 | 21 | use Cake\Database\Expression\QueryExpression;
|
22 | 22 | use Cake\ORM\Table;
|
23 | 23 | use Cake\ORM\TableRegistry;
|
| 24 | +use Cake\Validation\Validator; |
24 | 25 |
|
25 | 26 | /**
|
26 | 27 | * Used to test correct class is instantiated when using TableRegistry::get();
|
@@ -1836,4 +1837,70 @@ public function testValidatorSetter() {
|
1836 | 1837 | $this->assertSame($validator, $table->validator('other'));
|
1837 | 1838 | }
|
1838 | 1839 |
|
| 1840 | +/** |
| 1841 | + * Tests saving with validation |
| 1842 | + * |
| 1843 | + * @return void |
| 1844 | + */ |
| 1845 | + public function testSaveWithValidationError() { |
| 1846 | + $entity = new \Cake\ORM\Entity([ |
| 1847 | + 'username' => 'superuser' |
| 1848 | + ]); |
| 1849 | + $table = TableRegistry::get('users'); |
| 1850 | + $table->validator()->validatePresence('password'); |
| 1851 | + $this->assertFalse($table->save($entity)); |
| 1852 | + $this->assertNotEmpty($entity->errors('password')); |
| 1853 | + } |
| 1854 | + |
| 1855 | +/** |
| 1856 | + * Tests saving with validation and field list |
| 1857 | + * |
| 1858 | + * @return void |
| 1859 | + */ |
| 1860 | + public function testSaveWithValidationErrorAndFieldList() { |
| 1861 | + $entity = new \Cake\ORM\Entity([ |
| 1862 | + 'username' => 'superuser' |
| 1863 | + ]); |
| 1864 | + $table = TableRegistry::get('users'); |
| 1865 | + $table->validator()->validatePresence('password'); |
| 1866 | + $this->assertFalse($table->save($entity, [ |
| 1867 | + 'fieldList' => ['username', 'password'] |
| 1868 | + ])); |
| 1869 | + $this->assertNotEmpty($entity->errors('password')); |
| 1870 | + } |
| 1871 | + |
| 1872 | +/** |
| 1873 | + * Tests using a custom validation object when saving |
| 1874 | + * |
| 1875 | + * @return void |
| 1876 | + */ |
| 1877 | + public function testSaveWithDifferentValidator() { |
| 1878 | + $entity = new \Cake\ORM\Entity([ |
| 1879 | + 'username' => 'superuser' |
| 1880 | + ]); |
| 1881 | + $table = TableRegistry::get('users'); |
| 1882 | + $validator = (new Validator)->validatePresence('password'); |
| 1883 | + $table->validator('custom', $validator); |
| 1884 | + $this->assertFalse($table->save($entity, ['validate' => 'custom'])); |
| 1885 | + $this->assertNotEmpty($entity->errors('password')); |
| 1886 | + |
| 1887 | + $this->assertSame($entity, $table->save($entity), 'default was not used'); |
| 1888 | + } |
| 1889 | + |
| 1890 | +/** |
| 1891 | + * Tests saving with successful validation |
| 1892 | + * |
| 1893 | + * @return void |
| 1894 | + */ |
| 1895 | + public function testSaveWithValidationSuccess() { |
| 1896 | + $entity = new \Cake\ORM\Entity([ |
| 1897 | + 'username' => 'superuser', |
| 1898 | + 'password' => 'hey' |
| 1899 | + ]); |
| 1900 | + $table = TableRegistry::get('users'); |
| 1901 | + $table->validator()->validatePresence('password'); |
| 1902 | + $this->assertSame($entity, $table->save($entity)); |
| 1903 | + $this->assertEmpty($entity->errors('password')); |
| 1904 | + } |
| 1905 | + |
1839 | 1906 | }
|
0 commit comments