示例#1
0
 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));
 }
示例#4
0
 /**
  * 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;
 }
示例#5
0
 /**
  * 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'));
 }
示例#6
0
 /**
  * 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'));
 }
示例#7
0
 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']));
     }
 }
示例#8
0
 /**
  * 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'));
 }