public function testInsertFromTableWithMultipleFeaturesEnabled() { $tableData = array(array('Name', 'Date', 'Venue'), array('PHPNW', '08/10/2011 09:00', 'Ramada Hotel')); $tableData = array(array('Name' => 'PHPNW', 'Date' => '08/10/2011 09:00', 'Venue' => 'Ramada Hotel')); $tableNode = m::mock('Behat\\Gherkin\\Node\\TableNode'); $tableNode->shouldReceive('getHash')->withNoArgs()->andReturn($tableData)->once(); $expectedInsert = array('name' => 'PHPNW', 'datetime' => '2011-10-08 09:00:00', 'venue' => 'Ramada Hotel', 'description' => 'TEST DESCRIPTION'); $this->mockedConnection->shouldReceive('insert')->with('\\Phabric\\Entity', $expectedInsert)->once(); $this->object->setNameTransformations(array('Date' => 'datetime')); $this->object->setDefaults(array('description' => 'TEST DESCRIPTION', 'venue' => 'TEST VENUE')); $retFn = function ($date) { $date = \DateTime::createFromFormat('d/m/Y H:i', $date); return $date->format('Y-m-d H:i:s'); }; $this->mockedBus->shouldReceive('getDataTransformation')->with('UKTOMYSQLDATE')->once()->andReturn($retFn); $this->object->setDataTransformations(array('datetime' => 'UKTOMYSQLDATE')); $this->object->insertFromTable($tableNode); }