summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/database_test.test
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2010-12-31 20:43:43 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2010-12-31 20:43:43 +0000
commit98f287b55a88d06199cda88b6929af589c182e23 (patch)
tree50b7a7a71eb8c54e417cbaa8f4d6f1a975e9d72f /modules/simpletest/tests/database_test.test
parent0c8931dd76d066c5332846d478964d1145c5c6c2 (diff)
downloadbrdo-98f287b55a88d06199cda88b6929af589c182e23.tar.gz
brdo-98f287b55a88d06199cda88b6929af589c182e23.tar.bz2
#1001242 by agentrickard, pwolanin, Crell, chx: Add DBTNG support for EXISTS conditions.
Diffstat (limited to 'modules/simpletest/tests/database_test.test')
-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.'));
+ }
}
/**