class ConditionTest

Same name in this branch
  1. 11.x core/tests/Drupal/Tests/Core/Database/ConditionTest.php \Drupal\Tests\Core\Database\ConditionTest
Same name and namespace in other branches
  1. 10 core/tests/Drupal/Tests/Core/Database/ConditionTest.php \Drupal\Tests\Core\Database\ConditionTest
  2. 9 core/tests/Drupal/Tests/Core/Database/ConditionTest.php \Drupal\Tests\Core\Database\ConditionTest
  3. 8.9.x core/tests/Drupal/Tests/Core/Database/ConditionTest.php \Drupal\Tests\Core\Database\ConditionTest

Tests \Drupal\pgsql\EntityQuery\Condition.

Attributes

#[CoversClass(Condition::class)] #[Group('Database')]

Hierarchy

Expanded class hierarchy of ConditionTest

File

core/modules/pgsql/tests/src/Unit/EntityQuery/ConditionTest.php, line 17

Namespace

Drupal\Tests\pgsql\Unit\EntityQuery
View source
class ConditionTest extends UnitTestCase {
  
  /**
   * Tests that valid operators are accepted for case-insensitive array values.
   */
  public function testValidOperatorsAreAccepted(string $operator) : void {
    $sql_query = $this->createStub(SelectInterface::class);
    $sql_query->method('escapeField')
      ->willReturn('field');
    $condition = [
      'real_field' => 'field',
      'operator' => $operator,
      'value' => [
        'foo',
        'bar',
      ],
    ];
    Condition::translateCondition($condition, $sql_query, FALSE);
    $this->assertStringContainsString($operator, $condition['where']);
  }
  
  /**
   * Data provider for ::testValidOperatorsAreAccepted().
   */
  public static function providerValidOperators() : array {
    return [
      'IN operator' => [
        'IN',
      ],
      'NOT IN operator' => [
        'NOT IN',
      ],
    ];
  }
  
  /**
   * Tests that an invalid operator throws an exception.
   */
  public function testInvalidOperatorThrowsException() : void {
    $sql_query = $this->createStub(SelectInterface::class);
    $condition = [
      'real_field' => 'field',
      'operator' => 'LIKE',
      'value' => [
        'foo',
        'bar',
      ],
    ];
    $this->expectException(\InvalidArgumentException::class);
    $this->expectExceptionMessage('Invalid operator "LIKE"');
    Condition::translateCondition($condition, $sql_query, FALSE);
  }
  
  /**
   * Tests that case-sensitive conditions are not affected by the validation.
   */
  public function testCaseSensitiveArrayConditionIsNotValidated() : void {
    $sql_query = $this->createStub(SelectInterface::class);
    $condition = [
      'real_field' => 'field',
      'operator' => 'LIKE',
      'value' => [
        'foo',
        'bar',
      ],
    ];
    // No exception should be thrown for case-sensitive conditions.
    Condition::translateCondition($condition, $sql_query, TRUE);
    $this->assertArrayNotHasKey('where', $condition);
  }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary Overrides
ConditionTest::providerValidOperators public static function Data provider for ::testValidOperatorsAreAccepted().
ConditionTest::testCaseSensitiveArrayConditionIsNotValidated public function Tests that case-sensitive conditions are not affected by the validation.
ConditionTest::testInvalidOperatorThrowsException public function Tests that an invalid operator throws an exception.
ConditionTest::testValidOperatorsAreAccepted public function Tests that valid operators are accepted for case-insensitive array values.
DrupalTestCaseTrait::$root protected property The Drupal root directory.
DrupalTestCaseTrait::checkErrorHandlerOnTearDown public function Checks the test error handler after test execution. 1
DrupalTestCaseTrait::checkLegacySymfonyDeprecationHelperEnvVariable public function Checks legacy SYMFONY_DEPRECATIONS_HELPER env variable is not used.
DrupalTestCaseTrait::expectExceptionMessageIs protected function Expects an exactly matching exception message.
DrupalTestCaseTrait::expectExceptionMessageIsOrContains protected function Expects an exception message containing a specified string.
DrupalTestCaseTrait::getDrupalRoot Deprecated protected static function Returns the Drupal root directory. 1
DrupalTestCaseTrait::setDebugDumpHandler public static function Registers the dumper CLI handler when the DebugDump extension is enabled.
DrupalTestCaseTrait::setUpRoot final protected function Ensure that the $root property is set initially.
ExpectDeprecationTrait::expectDeprecation Deprecated public function Adds an expected deprecation.
ExpectDeprecationTrait::regularExpressionForFormatDescription private function
RandomGeneratorTrait::getRandomGenerator protected function Gets the random generator for the utility methods.
RandomGeneratorTrait::randomMachineName protected function Generates a unique random string containing letters and numbers.
RandomGeneratorTrait::randomObject public function Generates a random PHP object.
RandomGeneratorTrait::randomString public function Generates a pseudo-random string of ASCII characters of codes 32 to 126.
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::setUp protected function 377
UnitTestCase::setupMockIterator protected function Set up a traversable class mock to return specific items when iterated.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.