/**
  * testBehaviorMethodDispatchingWithData method
  *
  * @return void
  */
 public function testBehaviorMethodDispatchingWithData()
 {
     $Apple = new Apple();
     $Apple->Behaviors->attach('Test');
     $Apple->set('field', 'value');
     $this->assertTrue($Apple->testData());
     $this->assertTrue($Apple->data['Apple']['field_2']);
     $this->assertTrue($Apple->testData('one', 'two', 'three', 'four', 'five', 'six'));
 }
 /**
  * testDeconstructFields with datetime, timestamp, and date fields
  *
  * @return void
  */
 public function testDeconstructFieldsDateTime()
 {
     $this->skipIf($this->db instanceof Sqlserver, 'This test is not compatible with SQL Server.');
     $this->loadFixtures('Apple');
     $TestModel = new Apple();
     //test null/empty values first
     $data['Apple']['created']['year'] = '';
     $data['Apple']['created']['month'] = '';
     $data['Apple']['created']['day'] = '';
     $data['Apple']['created']['hour'] = '';
     $data['Apple']['created']['min'] = '';
     $data['Apple']['created']['sec'] = '';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => ''));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['date']['year'] = '';
     $data['Apple']['date']['month'] = '';
     $data['Apple']['date']['day'] = '';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('date' => ''));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['year'] = '2007';
     $data['Apple']['created']['month'] = '08';
     $data['Apple']['created']['day'] = '20';
     $data['Apple']['created']['hour'] = '';
     $data['Apple']['created']['min'] = '';
     $data['Apple']['created']['sec'] = '';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => '2007-08-20 00:00:00'));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['year'] = '2007';
     $data['Apple']['created']['month'] = '08';
     $data['Apple']['created']['day'] = '20';
     $data['Apple']['created']['hour'] = '10';
     $data['Apple']['created']['min'] = '12';
     $data['Apple']['created']['sec'] = '';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => '2007-08-20 10:12:00'));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['year'] = '2007';
     $data['Apple']['created']['month'] = '';
     $data['Apple']['created']['day'] = '12';
     $data['Apple']['created']['hour'] = '20';
     $data['Apple']['created']['min'] = '';
     $data['Apple']['created']['sec'] = '';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => ''));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['hour'] = '20';
     $data['Apple']['created']['min'] = '33';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => ''));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['hour'] = '20';
     $data['Apple']['created']['min'] = '33';
     $data['Apple']['created']['sec'] = '33';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => ''));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['hour'] = '13';
     $data['Apple']['created']['min'] = '00';
     $data['Apple']['date']['year'] = '2006';
     $data['Apple']['date']['month'] = '12';
     $data['Apple']['date']['day'] = '25';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => '', 'date' => '2006-12-25'));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['year'] = '2007';
     $data['Apple']['created']['month'] = '08';
     $data['Apple']['created']['day'] = '20';
     $data['Apple']['created']['hour'] = '10';
     $data['Apple']['created']['min'] = '12';
     $data['Apple']['created']['sec'] = '09';
     $data['Apple']['date']['year'] = '2006';
     $data['Apple']['date']['month'] = '12';
     $data['Apple']['date']['day'] = '25';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => '2007-08-20 10:12:09', 'date' => '2006-12-25'));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['year'] = '--';
     $data['Apple']['created']['month'] = '--';
     $data['Apple']['created']['day'] = '--';
     $data['Apple']['created']['hour'] = '--';
     $data['Apple']['created']['min'] = '--';
     $data['Apple']['created']['sec'] = '--';
     $data['Apple']['date']['year'] = '--';
     $data['Apple']['date']['month'] = '--';
     $data['Apple']['date']['day'] = '--';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => '', 'date' => ''));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['created']['year'] = '2007';
     $data['Apple']['created']['month'] = '--';
     $data['Apple']['created']['day'] = '20';
     $data['Apple']['created']['hour'] = '10';
     $data['Apple']['created']['min'] = '12';
     $data['Apple']['created']['sec'] = '09';
     $data['Apple']['date']['year'] = '2006';
     $data['Apple']['date']['month'] = '12';
     $data['Apple']['date']['day'] = '25';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('created' => '', 'date' => '2006-12-25'));
     $this->assertEquals($expected, $TestModel->data);
     $data = array();
     $data['Apple']['date']['year'] = '2006';
     $data['Apple']['date']['month'] = '12';
     $data['Apple']['date']['day'] = '25';
     $TestModel->data = null;
     $TestModel->set($data);
     $expected = array('Apple' => array('date' => '2006-12-25'));
     $this->assertEquals($expected, $TestModel->data);
     $db = ConnectionManager::getDataSource('test');
     $data = array();
     $data['Apple']['modified'] = $db->expression('NOW()');
     $TestModel->data = null;
     $TestModel->set($data);
     $this->assertEquals($TestModel->data, $data);
 }
 /**
  * testBehaviorMethodDispatchingWithData method
  *
  * @access public
  * @return void
  */
 function testBehaviorMethodDispatchingWithData()
 {
     $Apple = new Apple();
     $Apple->Behaviors->attach('Test');
     $Apple->set('field', 'value');
     $this->assertTrue($Apple->testData());
     $this->assertTrue($Apple->data['Apple']['field_2']);
 }