test_helpers-1.0.0-alpha6/tests/src/Unit/TestHelpersApi/QueryHelpersTest.php

tests/src/Unit/TestHelpersApi/QueryHelpersTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\test_helpers\Unit\TestHelpersApi;

use Drupal\Tests\UnitTestCase;
use Drupal\node\Entity\Node;
use Drupal\test_helpers\TestHelpers;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\CoversMethod;
use PHPUnit\Framework\Attributes\Group;

/**
 * Tests Query helper functions.
 */
#[CoversClass(TestHelpers::class)]
#[Group('test_helpers')]
#[CoversMethod(TestHelpers::class, 'findQueryCondition')]
class QueryHelpersTest extends UnitTestCase {

  /**
   * Tests the findQueryCondition function.
   */
  public function testFindQueryCondition() {
    TestHelpers::saveEntity(Node::class);
    $entityQuery = TestHelpers::service('entity_type.manager')
      ->getStorage('node')
      ->getQuery();

    $entityQuery->condition('nid', 1);
    $entityQuery->condition('title', 'Foo', '<>');
    $entityQuery->condition('title', 'Bar');
    $entityQuery->condition('uid', 42, '<>');

    $this->assertEquals([
      'field' => 'nid',
      'value' => 1,
      'operator' => NULL,
      'langcode' => NULL,
    ], TestHelpers::findQueryCondition($entityQuery, 'nid'));

    $this->assertEquals([
      'field' => 'title',
      'value' => 'Foo',
      'operator' => '<>',
      'langcode' => NULL,
    ], TestHelpers::findQueryCondition($entityQuery, ['value' => 'Foo']));

    $this->assertEquals([
      'field' => 'title',
      'value' => 'Foo',
      'operator' => '<>',
      'langcode' => NULL,
    ], TestHelpers::findQueryCondition($entityQuery, ['operator' => '<>']));

    $this->assertEquals([
      [
        'field' => 'title',
        'value' => 'Foo',
        'operator' => '<>',
        'langcode' => NULL,
      ], [
        'field' => 'title',
        'value' => 'Bar',
        'operator' => NULL,
        'langcode' => NULL,
      ],
    ], TestHelpers::findQueryCondition($entityQuery, 'title', TRUE));

    $this->assertEquals([
      [
        'field' => 'title',
        'value' => 'Foo',
        'operator' => '<>',
        'langcode' => NULL,
      ], [
        'field' => 'uid',
        'value' => 42,
        'operator' => '<>',
        'langcode' => NULL,
      ],
    ], TestHelpers::findQueryCondition($entityQuery, ['operator' => '<>'], TRUE));

    $this->assertNull(TestHelpers::findQueryCondition($entityQuery, 'nid.value'));
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc