summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/simpletest/tests/database_test.test55
1 files changed, 55 insertions, 0 deletions
diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test
index bfd67de9d..243dbba31 100644
--- a/modules/simpletest/tests/database_test.test
+++ b/modules/simpletest/tests/database_test.test
@@ -1684,6 +1684,61 @@ class DatabaseSelectSubqueryTestCase extends DatabaseTestCase {
$this->assertEqual(count($people), 2, t('Returned the correct number of rows.'));
}
+
+ /**
+ * Test EXISTS subquery conditionals on SELECT statements.
+ */
+ function testExistsSubquerySelect() {
+ // Put George into {test_people}.
+ db_insert('test_people')
+ ->fields(array(
+ 'name' => 'George',
+ 'age' => 27,
+ 'job' => 'Singer',
+ ))
+ ->execute();
+ // Base query to {test}.
+ $query = db_select('test', 't')
+ ->fields('t', array('name'));
+ // Subquery to {test_people}.
+ $subquery = db_select('test_people', 'tp')
+ ->fields('tp', array('name'))
+ ->condition('name', 'George');
+ $query->exists($subquery);
+ $result = $query->execute();
+
+ // Ensure that we got the right record.
+ $record = $result->fetch();
+ $this->assertEqual($record->name, 'George', t('Fetched name is correct using EXISTS query.'));
+ }
+
+ /**
+ * Test NOT EXISTS subquery conditionals on SELECT statements.
+ */
+ function testNotExistsSubquerySelect() {
+ // Put George into {test_people}.
+ db_insert('test_people')
+ ->fields(array(
+ 'name' => 'George',
+ 'age' => 27,
+ 'job' => 'Singer',
+ ))
+ ->execute();
+
+ // Base query to {test}.
+ $query = db_select('test', 't')
+ ->fields('t', array('name'));
+ // Subquery to {test_people}.
+ $subquery = db_select('test_people', 'tp')
+ ->fields('tp', array('name'))
+ ->condition('name', 'George');
+ $query->notExists($subquery);
+ $result = $query->execute();
+
+ // Ensure that we got the right record.
+ $record = $result->fetch();
+ $this->assertFalse($record, t('NOT EXISTS query returned no results.'));
+ }
}
/**