/**
  * test saveAll()'s return is correct when using atomic = false and validate = first.
  *
  * @return void
  */
 public function testSaveAllValidateFirstAtomicFalse()
 {
     $this->loadFixtures('Something');
     $Something = new Something();
     $invalidData = array(array('title' => 'foo', 'body' => 'bar', 'published' => 'baz'), array('body' => 3, 'published' => 'sd'));
     $Something->create();
     $Something->validate = array('title' => array('rule' => 'alphaNumeric', 'required' => true), 'body' => array('rule' => 'alphaNumeric', 'required' => true, 'allowEmpty' => true));
     $result = $Something->saveAll($invalidData, array('atomic' => false, 'validate' => 'first'));
     $expected = array(true, false);
     $this->assertEquals($expected, $result);
     $Something = new Something();
     $validData = array(array('title' => 'title value', 'body' => 'body value', 'published' => 'baz'), array('title' => 'valid', 'body' => 'this body', 'published' => 'sd'));
     $Something->create();
     $result = $Something->saveAll($validData, array('atomic' => false, 'validate' => 'first'));
     $expected = array(true, true);
     $this->assertEquals($expected, $result);
 }
 /**
  * test that saveAll and with models with validation interact well
  *
  * @return void
  */
 public function testValidatesWithModelsAndSaveAll()
 {
     $this->loadFixtures('Something', 'SomethingElse', 'JoinThing');
     $data = array('Something' => array('id' => 5, 'title' => 'Extra Fields', 'body' => 'Extra Fields Body', 'published' => '1'), 'SomethingElse' => array(array('something_else_id' => 1, 'doomed' => '')));
     $Something = new Something();
     $JoinThing = $Something->JoinThing;
     $JoinThing->validate = array('doomed' => array('rule' => 'notEmpty'));
     $expectedError = array('doomed' => array('This field cannot be left blank'));
     $Something->create();
     $result = $Something->saveAll($data, array('validate' => 'only'));
     $this->assertFalse($result);
     $result = $Something->validateAssociated($data);
     $this->assertFalse($result);
     $this->assertEquals($expectedError, $JoinThing->validationErrors);
     $result = $Something->validator()->validateAssociated($data);
     $this->assertFalse($result);
     $Something->create();
     $result = $Something->saveAll($data, array('validate' => 'first'));
     $this->assertFalse($result);
     $this->assertEquals($expectedError, $JoinThing->validationErrors);
     $count = $Something->find('count', array('conditions' => array('Something.id' => $data['Something']['id'])));
     $this->assertSame(0, $count);
     $joinRecords = $JoinThing->find('count', array('conditions' => array('JoinThing.something_id' => $data['Something']['id'])));
     $this->assertEquals(0, $joinRecords, 'Records were saved on the join table. %s');
 }