function FieldSqlStorageTestCase::testFieldSqlStorageMultipleConditionsSameColumn in Drupal 7
Test handling multiple conditions on one column of a field.
Tests both the result and the complexity of the query.
File
- modules/
field/ modules/ field_sql_storage/ field_sql_storage.test, line 514 - Tests for field_sql_storage.module.
Class
- FieldSqlStorageTestCase
- Tests field storage.
Code
function testFieldSqlStorageMultipleConditionsSameColumn() {
$entity = field_test_create_stub_entity(NULL, NULL);
$entity->{$this->field_name}[LANGUAGE_NONE][0] = array(
'value' => 1,
);
field_test_entity_save($entity);
$entity = field_test_create_stub_entity(NULL, NULL);
$entity->{$this->field_name}[LANGUAGE_NONE][0] = array(
'value' => 2,
);
field_test_entity_save($entity);
$entity = field_test_create_stub_entity(NULL, NULL);
$entity->{$this->field_name}[LANGUAGE_NONE][0] = array(
'value' => 3,
);
field_test_entity_save($entity);
$query = new EntityFieldQuery();
// This tag causes field_test_query_store_global_test_query_alter() to be
// invoked so that the query can be tested.
$query
->addTag('store_global_test_query');
$query
->entityCondition('entity_type', 'test_entity');
$query
->entityCondition('bundle', 'test_bundle');
$query
->fieldCondition($this->field_name, 'value', 1, '<>', 0, LANGUAGE_NONE);
$query
->fieldCondition($this->field_name, 'value', 2, '<>', 0, LANGUAGE_NONE);
$result = field_sql_storage_field_storage_query($query);
// Test the results.
$this
->assertEqual(1, count($result), format_string('One result should be returned, got @count', array(
'@count' => count($result),
)));
// Test the complexity of the query.
$query = $GLOBALS['test_query'];
$this
->assertNotNull($query, 'Precondition: the query should be available');
$tables = $query
->getTables();
$this
->assertEqual(1, count($tables), 'The query contains just one table.');
// Clean up.
unset($GLOBALS['test_query']);
}