private function runTableTests($expectedDataset, $tables, $filters) { $expectedDataset = new PHPUnit_Extensions_Database_DataSet_XmlDataSet($expectedDataset); $actualDataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($this->getConnection()->createDataSet($tables), $filters); foreach ($tables as $table) { $this->assertTablesEqual($expectedDataset->getTable($table), $actualDataset->getTable($table)); } }
public function testImportWithoutHeaders() { $tableName = 'csv_2cols'; $result = $this->import->setIgnoreLines(0)->import($tableName, ['col1', 'col2'], [new CsvFile(__DIR__ . '/_data/csv-import/escaping/raw-without-headers.csv', "\t", "", "\\")]); $expectedDataset = $this->createMySQLXMLDataSet(__DIR__ . "/_data/csv-import/escaping/expectation.standard.xml"); $currentDataset = $this->getConnection()->createDataSet(); $expectedDataset = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($expectedDataset, [$tableName]); $expectedDataset->setExcludeColumnsForTable($tableName, ['timestamp']); $currentDataset = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($currentDataset, [$tableName]); $currentDataset->setExcludeColumnsForTable($tableName, ['timestamp']); $this->assertTablesEqual($expectedDataset->getTable($tableName), $currentDataset->getTable($tableName)); $this->assertEmpty($result->getWarnings()); }
/** * compares a database table to an xml file * $xmlFile = the path to the xml file. dir is tests/_files/ * $table = the db table you're looking up * $ignoredColumns = an array of columns to ignore (such as primary keys that could get different numbers) */ public function dbXmlCompare($xmlFile, $table, $ignoredColumns) { $config = Zend_Registry::get('config'); $tablePrefix = $config->app->tablePrefix; $xmlSet = $this->getDataSet(TESTS_PATH . '/_files/' . $xmlFile); $dbSetTable = $this->getConnection()->createDataSet(); if ($ignoredColumns) { if (!is_array($ignoredColumns)) { $ignoredColumns = array($ignoredColumns); } $dbset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($dbSetTable, array($tablePrefix . $table => $ignoredColumns)); } $this->assertTablesEqual($xmlSet->getTable($tablePrefix . $table), $dbset->getTable($tablePrefix . $table)); }
/** * Tests adding a reminder to a task */ public function testAddReminder() { global $AppUI; global $w2Pconfig; $this->obj->load(1); // Ensure our global setting for task_reminder_control is set properly for this $old_task_reminder_control = $w2Pconfig['task_reminder_control']; $w2Pconfig['task_reminder_control'] = true; $this->obj->addReminder(); $this->obj->task_percent_complete = 50; $xml_file_dataset = $this->createXMLDataset($this->getDataSetPath() . 'tasksTestAddReminder.xml'); $xml_file_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_file_dataset, array('event_queue' => array('queue_start'))); $xml_db_dataset = $this->getConnection()->createDataSet(); $xml_db_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_db_dataset, array('event_queue' => array('queue_start'))); $this->assertTablesEqual($xml_file_filtered_dataset->getTable('event_queue'), $xml_db_filtered_dataset->getTable('event_queue')); $now_secs = time(); $min_time = $now_secs - 10; /** * Get updated dates to test against */ $q = new w2p_Database_Query(); $q->addTable('event_queue'); $q->addQuery('queue_start'); $q->addWhere('queue_id = 2'); $results = $q->loadColumn(); foreach ($results as $queue_start) { $this->assertGreaterThanOrEqual($min_time, $queue_start); $this->assertLessThanOrEqual($now_secs, $queue_start); } $w2Pconfig['task_reminder_control'] = $old_task_reminder_control; }
/** * Test deleting a tasklog */ public function testDelete() { global $AppUI; $this->obj->load(1); $msg = $this->obj->delete(); $xml_file_dataset = $this->createXMLDataSet($this->getDataSetPath() . 'tasklogsTestDelete.xml'); $xml_file_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_file_dataset, array('task_log' => array('task_log_updated'))); $xml_db_dataset = $this->getConnection()->createDataSet(); $xml_db_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_db_dataset, array('task_log' => array('task_log_updated'))); $this->assertTablesEqual($xml_file_filtered_dataset->getTable('task_log'), $xml_db_filtered_dataset->getTable('task_log')); $this->assertTablesEqual($xml_file_filtered_dataset->getTable('tasks'), $xml_db_filtered_dataset->getTable('tasks')); $this->assertTablesEqual($xml_file_filtered_dataset->getTable('projects'), $xml_db_filtered_dataset->getTable('projects')); }
/** * Tests the proper creation of a project. */ public function testCreateFile() { global $AppUI; $this->obj->bind($this->post_data); $errorArray = $this->obj->store($AppUI); $this->assertTrue($errorArray); $xml_file_dataset = $this->createXMLDataSet($this->getDataSetPath() . 'filesTestCreate.xml'); $xml_file_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_file_dataset, array('files' => array('project_created', 'project_updated'))); $xml_db_dataset = $this->getConnection()->createDataSet(); $xml_db_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_db_dataset, array('files' => array('project_created', 'project_updated'))); $this->assertTablesEqual($xml_file_filtered_dataset->getTable('files'), $xml_db_filtered_dataset->getTable('files')); }
public function testUpdateDepDate() { $this->obj->update_dep_dates(28); $xml_file_dataset = $this->createXMLDataSet(dirname(__FILE__) . '/../db_files/tasksTestUpdateDepDates.xml'); $xml_file_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_file_dataset, array('tasks' => array('task_updated'))); $xml_db_dataset = $this->getConnection()->createDataSet(); $xml_db_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_db_dataset, array('tasks' => array('task_updated'))); $this->assertTablesEqual($xml_file_filtered_dataset->getTable('tasks'), $xml_db_filtered_dataset->getTable('tasks')); $now_secs = time(); $min_time = $now_secs - 10; /** * Get updated dates to test against */ $q = new DBQuery(); $q->addTable('tasks'); $q->addQuery('task_updated'); $q->addWhere('task_id IN(28)'); $results = $q->loadList(); foreach ($results as $dates) { $this->assertGreaterThanOrEqual($min_time, strtotime($dates['task_updated'])); $this->assertLessThanOrEqual($now_secs, strtotime($dates['task_updated'])); } }
/** * Tests importing tasks from one project to another */ public function testImportTasks() { $this->obj->load(4); $response = $this->obj->importTasks(3); $this->assertEquals(array(), $response); $xml_file_dataset = $this->createXMLDataSet($this->getDataSetPath() . 'projectsTestImportTasks.xml'); $xml_file_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_file_dataset, array('tasks' => array('task_created', 'task_updated'))); $xml_db_dataset = $this->getConnection()->createDataSet(); $xml_db_filtered_dataset = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($xml_db_dataset, array('tasks' => array('task_created', 'task_updated'))); $this->assertTablesEqual($xml_file_filtered_dataset->getTable('tasks'), $xml_db_filtered_dataset->getTable('tasks')); $now_secs = time(); $min_time = $now_secs - 10; /** * Get created dates to test against */ $q = new w2p_Database_Query(); $q->addTable('tasks'); $q->addQuery('task_created'); $q->addWhere('task_project = 4'); $results = $q->loadColumn(); foreach ($results as $created) { $this->assertGreaterThanOrEqual($min_time, strtotime($created)); $this->assertLessThanOrEqual($now_secs, strtotime($created)); } /** * Get updated dates to test against */ $q = new w2p_Database_Query(); $q->addTable('tasks'); $q->addQuery('task_updated'); $q->addWhere('task_project = 4'); $results = $q->loadColumn(); foreach ($results as $updated) { $this->assertGreaterThanOrEqual($min_time, strtotime($updated)); $this->assertLessThanOrEqual($now_secs, strtotime($updated)); } $xml_dataset = $this->createXMLDataSet($this->getDataSetPath() . 'projectsTestImportTasks.xml'); $this->assertTablesEqual($xml_dataset->getTable('user_tasks'), $this->getConnection()->createDataSet()->getTable('user_tasks')); $this->assertTablesEqual($xml_dataset->getTable('task_dependencies'), $this->getConnection()->createDataSet()->getTable('task_dependencies')); }