Dispatcher =& new TestModelTaskMockShellDispatcher(); $this->Task =& new MockModelTask($this->Dispatcher); $this->Task->Dispatch = new $this->Dispatcher; } /** * tearDown method * * @return void * @access public */ function endTest() { unset($this->Task, $this->Dispatcher); ClassRegistry::flush(); } /** * Test that listAll scans the database connection and lists all the tables in it.s * * @return void **/ function testListAll() { $this->Task->expectAt(1, 'out', array('1. Article')); $this->Task->expectAt(2, 'out', array('2. Comment')); $result = $this->Task->listAll('test_suite'); $expected = array('articles', 'comments'); $this->assertEqual($result, $expected); $this->Task->expectAt(4, 'out', array('1. Article')); $this->Task->expectAt(5, 'out', array('2. Comment')); $this->Task->connection = 'test_suite'; $result = $this->Task->listAll(); $expected = array('articles', 'comments'); $this->assertEqual($result, $expected); } /** * Test that listAll scans the database connection and lists all the tables in it.s * * @return void **/ function testGetName() { $this->Task->setReturnValue('in', 1); $this->Task->setReturnValueAt(0, 'in', 'q'); $this->Task->expectOnce('_stop'); $this->Task->getName('test_suite'); $this->Task->setReturnValueAt(1, 'in', 1); $result = $this->Task->getName('test_suite'); $expected = 'Article'; $this->assertEqual($result, $expected); $this->Task->setReturnValueAt(2, 'in', 2); $result = $this->Task->getName('test_suite'); $expected = 'Comment'; $this->assertEqual($result, $expected); $this->Task->setReturnValueAt(3, 'in', 10); $result = $this->Task->getName('test_suite'); $this->Task->expectOnce('err'); } /** * Test table name interactions * * @return void **/ function testGetTableName() { $this->Task->setReturnValueAt(0, 'in', 'y'); $result = $this->Task->getTable('Article', 'test_suite'); $expected = 'articles'; $this->assertEqual($result, $expected); $this->Task->setReturnValueAt(1, 'in', 'n'); $this->Task->setReturnValueAt(2, 'in', 'my_table'); $result = $this->Task->getTable('Article', 'test_suite'); $expected = 'my_table'; $this->assertEqual($result, $expected); } /** * test that initializing the validations works. * * @return void **/ function testInitValidations() { $result = $this->Task->initValidations(); $this->assertTrue(in_array('notempty', $result)); } /** * test that individual field validation works, with interactive = false * * @return void **/ function testNoInteractiveFieldValidation() { $this->Task->interactive = false; $result = $this->Task->fieldValidation('text', array('type' => 'string', 'length' => 10, 'null' => false)); } /** * test the validation Generation routine * * @return void **/ function testDoValidation() { $Model =& new MockModelTaskModel(); $Model->setReturnValue('schema', array( 'id' => array( 'type' => 'integer', 'length' => 11, 'null' => false, 'key' => 'primary', ), 'name' => array( 'type' => 'string', 'length' => 20, 'null' => false, ), 'email' => array( 'type' => 'string', 'length' => 255, 'null' => false, ), 'some_date' => array( 'type' => 'date', 'length' => '', 'null' => false, ), 'some_time' => array( 'type' => 'time', 'length' => '', 'null' => false, ), 'created' => array( 'type' => 'datetime', 'length' => '', 'null' => false, ) )); $this->Task->interactive = false; $result = $this->Task->doValidation($Model); $expected = array( 'name' => array( 'notEmpty' => array('rule' => 'notEmpty') ), 'email' => array( 'email' => array('rule' => 'email'), ), 'some_date' => array( 'date' => array('rule' => 'date') ), 'some_time' => array( 'time' => array('rule' => 'time') ), ); debug($result); $this->assertEqual($result, $expected); } } ?>