Tests delete and truncate queries.
The DELETE tests are not as extensive, as all of the interesting code for DELETE queries is in the conditional which is identical to the UPDATE and SELECT conditional handling.
The TRUNCATE tests are not extensive either, because the behavior of TRUNCATE queries is not consistent across database engines. We only test that a TRUNCATE query actually deletes all rows from the target table.
Expanded class hierarchy of DeleteTruncateTest
class DeleteTruncateTest extends DatabaseTestBase {
public static function getInfo() {
return array(
'name' => 'Delete/Truncate tests',
'description' => 'Test the Delete and Truncate query builders.',
'group' => 'Database',
);
}
/**
* Confirms that we can use a subselect in a delete successfully.
*/
function testSubselectDelete() {
$num_records_before = db_query('SELECT COUNT(*) FROM {test_task}')
->fetchField();
$pid_to_delete = db_query("SELECT * FROM {test_task} WHERE task = 'sleep'")
->fetchField();
$subquery = db_select('test', 't')
->fields('t', array(
'id',
))
->condition('t.id', array(
$pid_to_delete,
), 'IN');
$delete = db_delete('test_task')
->condition('task', 'sleep')
->condition('pid', $subquery, 'IN');
$num_deleted = $delete
->execute();
$this
->assertEqual($num_deleted, 1, 'Deleted 1 record.');
$num_records_after = db_query('SELECT COUNT(*) FROM {test_task}')
->fetchField();
$this
->assertEqual($num_records_before, $num_records_after + $num_deleted, 'Deletion adds up.');
}
/**
* Confirms that we can delete a single record successfully.
*/
function testSimpleDelete() {
$num_records_before = db_query('SELECT COUNT(*) FROM {test}')
->fetchField();
$num_deleted = db_delete('test')
->condition('id', 1)
->execute();
$this
->assertIdentical($num_deleted, 1, 'Deleted 1 record.');
$num_records_after = db_query('SELECT COUNT(*) FROM {test}')
->fetchField();
$this
->assertEqual($num_records_before, $num_records_after + $num_deleted, 'Deletion adds up.');
}
/**
* Confirms that we can truncate a whole table successfully.
*/
function testTruncate() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test}")
->fetchField();
db_truncate('test')
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test}")
->fetchField();
$this
->assertEqual(0, $num_records_after, 'Truncate really deletes everything.');
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DatabaseTestBase:: |
public static | property |
Modules to enable. Overrides DrupalUnitTestBase:: |
3 |
DatabaseTestBase:: |
static | function | Sets up our sample data. | |
DatabaseTestBase:: |
function | Sets up tables for NULL handling. | ||
DatabaseTestBase:: |
function |
Sets up Drupal unit test environment. Overrides DrupalUnitTestBase:: |
||
DeleteTruncateTest:: |
public static | function | ||
DeleteTruncateTest:: |
function | Confirms that we can delete a single record successfully. | ||
DeleteTruncateTest:: |
function | Confirms that we can use a subselect in a delete successfully. | ||
DeleteTruncateTest:: |
function | Confirms that we can truncate a whole table successfully. | ||
DrupalUnitTestBase:: |
protected | property | A KeyValueMemoryFactory instance to use when building the container. | |
DrupalUnitTestBase:: |
private | property | ||
DrupalUnitTestBase:: |
private | property | ||
DrupalUnitTestBase:: |
private | property | ||
DrupalUnitTestBase:: |
public | function | Sets up the base service container for this test. | 1 |
DrupalUnitTestBase:: |
protected | function | Disables modules for this test. | |
DrupalUnitTestBase:: |
protected | function | Enables modules for this test. | |
DrupalUnitTestBase:: |
protected | function | Installs default configuration for a given list of modules. | |
DrupalUnitTestBase:: |
protected | function | Installs a specific table from a module schema definition. | |
DrupalUnitTestBase:: |
protected | function |
Deletes created files, database tables, and reverts all environment changes. Overrides TestBase:: |
2 |
DrupalUnitTestBase:: |
function |
Overrides \Drupal\simpletest\UnitTestBase::__construct(). Overrides UnitTestBase:: |
||
TestBase:: |
protected | property | Assertions thrown in that test case. | |
TestBase:: |
protected | property | The config importer that can used in a test. | 1 |
TestBase:: |
protected | property | The dependency injection container used in the test. | 1 |
TestBase:: |
protected | property | The database prefix of this test run. | |
TestBase:: |
public | property | Whether to die in case any test assertion fails. | |
TestBase:: |
protected | property | The original file directory, before it was changed for testing purposes. | |
TestBase:: |
protected | property | The original database prefix when running inside Simpletest. | |
TestBase:: |
protected | property | The settings array. | |
TestBase:: |
protected | property | The public file directory for the test environment. | |
TestBase:: |
public | property | Current results of this test case. | |
TestBase:: |
protected | property | Flag to indicate whether the test has been set up. | |
TestBase:: |
protected | property | ||
TestBase:: |
protected | property | ||
TestBase:: |
protected | property | This class is skipped when looking for the source of an assertion. | |
TestBase:: |
protected | property | The test run ID. | |
TestBase:: |
protected | property | Time limit for the test. | |
TestBase:: |
protected | property | TRUE if verbose debugging is enabled. | |
TestBase:: |
protected | property | Safe class name for use in verbose output filenames. | |
TestBase:: |
protected | property | Directory where verbose output files are put. | |
TestBase:: |
protected | property | URL to the verbose output file directory. | |
TestBase:: |
protected | property | Incrementing identifier for verbose output filenames. | |
TestBase:: |
protected | function | Internal helper: stores the assert. | |
TestBase:: |
protected | function | Check to see if two values are equal. | |
TestBase:: |
protected | function | Check to see if a value is false (an empty string, 0, NULL, or FALSE). | |
TestBase:: |
protected | function | Check to see if two values are identical. | |
TestBase:: |
protected | function | Checks to see if two objects are identical. | |
TestBase:: |
protected | function | Check to see if two values are not equal. | |
TestBase:: |
protected | function | Check to see if two values are not identical. | |
TestBase:: |
protected | function | Check to see if a value is not NULL. | |
TestBase:: |
protected | function | Check to see if a value is NULL. | |
TestBase:: |
protected | function | Check to see if a value is not false (not an empty string, 0, NULL, or FALSE). | |
TestBase:: |
protected | function | Changes the database connection to the prefixed one. | |
TestBase:: |
protected | function | Checks the matching requirements for Test. | 4 |
TestBase:: |
public | function | Returns a ConfigImporter object to import test importing of configuration. | 1 |
TestBase:: |
public | function | Copies configuration objects from source storage to target storage. | |
TestBase:: |
public static | function | Delete an assertion record by message ID. | |
TestBase:: |
protected | function | Fire an error assertion. | 1 |
TestBase:: |
public | function | Handle errors during test runs. | |
TestBase:: |
protected | function | Handle exceptions. | |
TestBase:: |
protected | function | Fire an assertion that is always negative. | |
TestBase:: |
public static | function | Ensures test files are deletable within file_unmanaged_delete_recursive(). | |
TestBase:: |
public static | function | Converts a list of possible parameters into a stack of permutations. | |
TestBase:: |
protected | function | Cycles through backtrace until the first non-assertion method is found. | |
TestBase:: |
public static | function | Returns the database connection to the site running Simpletest. | |
TestBase:: |
public static | function | Store an assertion from outside the testing context. | |
TestBase:: |
protected | function | Fire an assertion that is always positive. | |
TestBase:: |
protected | function | Create and set new configuration directories. | 1 |
TestBase:: |
protected | function | Generates a database prefix for running tests. | |
TestBase:: |
protected | function | Prepares the current environment for running the test. | |
TestBase:: |
public static | function | Generates a random string containing letters and numbers. | |
TestBase:: |
public static | function | Generates a random PHP object. | |
TestBase:: |
public static | function | Generates a random string of ASCII characters of codes 32 to 126. | |
TestBase:: |
protected | function | Rebuild drupal_container(). | 1 |
TestBase:: |
public | function | Run all tests in this class. | |
TestBase:: |
protected | function | Changes in memory settings. | |
TestBase:: |
protected | function | Logs verbose message in a text file. | |
UnitTestBase:: |
protected | property |