/** * Test that 'required' and 'on' are not conflicting * * @return void */ public function testOnRequiredConflictValidation() { $this->loadFixtures('Boat'); $Boat = new Boat(); // no title field present $data = array('Boat' => array('body' => 'Extra Fields Body', 'published' => '1')); $Boat->validate = array('title' => array('notBlank' => array('rule' => 'notBlank', 'required' => 'create', 'on' => 'create'))); $Boat->create($data); $this->assertFalse($Boat->validates()); $Boat->validate = array('title' => array('notBlank' => array('rule' => 'notBlank', 'required' => 'update', 'on' => 'create'))); $Boat->create($data); $this->assertTrue($Boat->validates()); $Boat->validate = array('title' => array('notBlank' => array('rule' => 'notBlank', 'required' => 'create', 'on' => 'update'))); $Boat->create($data); $this->assertTrue($Boat->validates()); $Boat->validate = array('title' => array('notBlank' => array('rule' => 'notBlank', 'required' => 'update', 'on' => 'update'))); $Boat->create($data); $this->assertTrue($Boat->validates()); $Boat->validate = array('title' => array('notBlank' => array('rule' => 'notBlank', 'required' => 'create', 'on' => 'create'))); $Boat->save(null, array('validate' => false)); $data['Boat']['id'] = $Boat->id; $Boat->set($data); $this->assertTrue($Boat->validates()); $Boat->validate = array('title' => array('notBlank' => array('rule' => 'notBlank', 'required' => 'update', 'on' => 'create'))); $Boat->set($data); $this->assertTrue($Boat->validates()); $Boat->validate = array('title' => array('notBlank' => array('rule' => 'notBlank', 'required' => 'create', 'on' => 'update'))); $Boat->set($data); $this->assertTrue($Boat->validates()); $Boat->validate = array('title' => array('notBlank' => array('rule' => 'notBlank', 'required' => 'update', 'on' => 'update'))); $Boat->set($data); $this->assertFalse($Boat->validates()); }