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 testIncludeExcludeMixedDataSet() { $constraint = new PHPUnit_Extensions_Database_Constraint_DataSetIsEqual($this->expectedDataSet); $dataSet = new PHPUnit_Extensions_Database_DataSet_FlatXmlDataSet(dirname(__FILE__) . '/../_files/XmlDataSets/FilteredTestComparison.xml'); $filteredDataSet = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet); $filteredDataSet->addIncludeTables(array('table1', 'table3')); $filteredDataSet->setExcludeColumnsForTable('table1', array('table1_id')); $filteredDataSet->setIncludeColumnsForTable('table3', array('column9', 'column10', 'column11', 'column12')); self::assertThat($filteredDataSet, $constraint); }
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)); }
public function testAddMessageNoAttach() { $message = new ModelMessage(null, 'ivan', '2015-11-15 13:48:26', 1, 'Cool!', null); $actual1 = $message->addMessage(null); //fwrite(STDERR, print_r($actual1, true)); $expected1 = ['id' => 16, 'username' => 'ivan', 'timestamp' => '2015-11-15 13:48:26', 'thread_id' => '1', 'text' => 'Cool!', 'likes' => 0, 'didlike' => false, 'attachments' => null]; $this->assertEquals($expected1, $actual1); $actual = $this->getConnection()->createDataSet(['messages']); $actualFilter = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($actual); $actualFilter->setExcludeColumnsForTable('messages', ['timestamp']); $expected = $this->createFlatXmlDataSet('_files/messages_add.xml'); $expectedFilter = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($expected); $expectedFilter->setExcludeColumnsForTable('messages', ['timestamp']); $this->assertDataSetsEqual($expectedFilter, $actualFilter); }
/** * Load dataset from XML file. * * @param string $file The name of the file to load * @return array */ protected function load_xml_data_file($file) { static $replacements = null; $raw = $this->createXMLDataSet($file); $clean = new PHPUnit_Extensions_Database_DataSet_ReplacementDataSet($raw); foreach ($this->replacements as $placeholder => $value) { $clean->addFullReplacement($placeholder, $value); } $logs = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($clean); $logs->addIncludeTables(array('log')); $stats = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($clean); $stats->addIncludeTables(array('stats_daily', 'stats_user_daily')); return array($logs, $stats); }
public function testRolesRemoveRecursive() { $role_id_1 = $this->Instance()->add($this->type() . '_1', $this->type() . ' Description 1'); $role_id_2 = $this->Instance()->add($this->type() . '_2', $this->type() . ' Description 2', $role_id_1); $role_id_3 = $this->Instance()->add($this->type() . '_3', $this->type() . ' Description 3', $role_id_1); $role_id_4 = $this->Instance()->add($this->type() . '_4', $this->type() . ' Description 4'); $perm_id_1 = self::$rbac->Permissions->add('permissions_1', 'permissions Description 1'); $this->Instance()->assign($role_id_1, $perm_id_1); self::$rbac->Users->assign($role_id_1, 5); $result = $this->Instance()->remove($role_id_1, true); $dataSet = $this->getConnection()->createDataSet(); $filterDataSet = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet); $filterDataSet->addIncludeTables(array($this->Instance()->tablePrefix() . 'rolepermissions', $this->Instance()->tablePrefix() . $this->type(), $this->Instance()->tablePrefix() . 'userroles')); $filterDataSet->setExcludeColumnsForTable($this->Instance()->tablePrefix() . 'rolepermissions', array('assignmentdate')); $filterDataSet->setExcludeColumnsForTable($this->Instance()->tablePrefix() . 'userroles', array('assignmentdate')); $expectedDataSet = $this->_dataSet($this->type() . '/expected_remove_recursive'); $this->assertDataSetsEqual($expectedDataSet, $filterDataSet); }
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'])); } }
public function testWithDatasetOnly() { // Create a dataset from live table through sql dataset // This is also a kind of live data only $ds1 = new PHPUnit_Extensions_Database_DataSet_QueryDataSet($this->getConnection()); $ds1->addTable('user'); $ds2 = $this->getArrayDataset(); $filterDataSet = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($ds2); $filterDataSet->addIncludeTables(array('user')); $this->assertDataSetsEqual($ds1, $filterDataSet); }
/** * 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')); }
public function testUsersResetAssignments() { $role_id_1 = self::$rbac->Roles->add('roles_1', 'roles Description 1'); $role_id_2 = self::$rbac->Roles->add('roles_2', 'roles Description 2'); $role_id_3 = self::$rbac->Roles->add('roles_3', 'roles Description 3'); self::$rbac->Users->assign($role_id_1, 5); self::$rbac->Users->assign($role_id_2, 5); self::$rbac->Users->assign($role_id_3, 5); self::$rbac->Users->resetAssignments(true); $dataSet = $this->getConnection()->createDataSet(); $filterDataSet = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet); $filterDataSet->addIncludeTables(array(self::$rbac->Users->tablePrefix() . 'userroles')); $filterDataSet->setExcludeColumnsForTable(self::$rbac->Users->tablePrefix() . 'userroles', array('assignmentdate')); $expectedDataSet = $this->_dataSet('users/expected_reset_assignments'); $this->assertDataSetsEqual($expectedDataSet, $filterDataSet); }
/** * @covers ::update */ public function testUpdate() { $carTable = new CarTable($this->pdo); $cars = $carTable->findAll(); $this->assertCount(2, $cars); /** * Alter first car */ $firstCar = $cars[0]; $this->assertFalse($firstCar->isAltered()); $firstCar->set('horsepower', 21); $this->assertTrue($firstCar->isAltered()); $carTable->update($firstCar); /** * Alter second car */ $secondCar = $cars[1]; $this->assertFalse($secondCar->isAltered()); $secondCar->set('horsepower', 41); $this->assertTrue($secondCar->isAltered()); $carTable->update($secondCar); /** * Assert data set */ $expectedCsvDataSet = new \PHPUnit_Extensions_Database_DataSet_CsvDataSet(); $expectedCsvDataSet->addTable('cars', dirname(__FILE__) . '/../Fixture/cars_after-update.csv'); $expectedDataSet = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($expectedCsvDataSet); $expectedDataSet->setExcludeColumnsForTable('cars', ['modified', 'created']); $dataSet = new \PHPUnit_Extensions_Database_DataSet_QueryDataSet($this->getConnection()); $dataSet->addTable('cars', 'SELECT * FROM `cars`'); $dataSet = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet); $dataSet->setExcludeColumnsForTable('cars', ['modified', 'created']); $this->assertDataSetsEqual($expectedDataSet, $dataSet); }
public function testManagerReset() { $role_id_1 = self::$rbac->Roles->add('roles_1', 'roles Description 1'); $perm_id_1 = self::$rbac->Permissions->add('permissions_1', 'permissions Description 1'); self::$rbac->Roles->assign($role_id_1, $perm_id_1); self::$rbac->Users->assign($role_id_1, 5); $result = self::$rbac->reset(true); $dataSet = $this->getConnection()->createDataSet(); $filterDataSet = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet); $filterDataSet->setExcludeColumnsForTable(self::$rbac->tablePrefix() . 'rolepermissions', array('assignmentdate')); $filterDataSet->setExcludeColumnsForTable(self::$rbac->tablePrefix() . 'userroles', array('assignmentdate')); $expectedDataSet = $this->_dataSet('/manager/expected_reset'); $this->assertDataSetsEqual($expectedDataSet, $filterDataSet); }
public function filterTable($tableName, $dataSet) { $filterDataSet = new PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet); if (is_string($tableName)) { $tableName = array($tableName); } foreach ($tableName as $name) { $filterDataSet->setExcludeColumnsForTable($name, array('created', 'last_updated')); } return $filterDataSet; }
/** * 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')); }
/** * 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')); }
public function testReset() { $this->Instance()->add($this->type() . '_title_1', $this->type() . ' Description 1'); $this->Instance()->add($this->type() . '_title_2', $this->type() . ' Description 2'); $this->Instance()->add($this->type() . '_title_3', $this->type() . ' Description 3'); $this->Instance()->reset(true); $dataSet = $this->getConnection()->createDataSet(); $filterDataSet = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet); $filterDataSet->addIncludeTables(array($this->Instance()->tablePrefix() . $this->type())); $expectedDataSet = $this->_dataSet('base/expected_reset_' . $this->type()); $this->assertDataSetsEqual($expectedDataSet, $filterDataSet); }
/** * 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; }
public function testPermissionsUnassignRoles() { $perm_id_1 = $this->Instance()->add($this->type() . '_1', $this->type() . ' Description 1'); $role_id_1 = self::$rbac->Roles->add('roles_1', 'roles Description 1'); $role_id_2 = self::$rbac->Roles->add('roles_2', 'roles Description 2'); $role_id_3 = self::$rbac->Roles->add('roles_3', 'roles Description 3'); $this->Instance()->assign($role_id_1, $perm_id_1); $this->Instance()->assign($role_id_2, $perm_id_1); $this->Instance()->assign($role_id_3, $perm_id_1); $result = $this->Instance()->unassignRoles($perm_id_1); $dataSet = $this->getConnection()->createDataSet(); $filterDataSet = new \PHPUnit_Extensions_Database_DataSet_DataSetFilter($dataSet); $filterDataSet->addIncludeTables(array($this->Instance()->tablePrefix() . 'rolepermissions')); $filterDataSet->setExcludeColumnsForTable($this->Instance()->tablePrefix() . 'rolepermissions', array('assignmentdate')); $expectedDataSet = $this->_dataSet('/' . $this->type() . '/expected_unassign_roles'); $this->assertDataSetsEqual($expectedDataSet, $filterDataSet); }