You are here

class StringSorterTest in Views XML Backend 8

@coversDefaultClass \Drupal\Tests\views_xml_backend\Unit\Sorter\StringSorterTest @group views_xml_backend

Hierarchy

Expanded class hierarchy of StringSorterTest

File

tests/src/Unit/Sorter/StringSorterTest.php, line 13

Namespace

Drupal\Tests\views_xml_backend\Unit\Sorter
View source
class StringSorterTest extends ViewsXmlBackendTestBase {
  public function testAsc() {
    $sorter = $this
      ->getSorter('field', 'ASC');
    $result = [
      new ResultRow([
        'field' => [
          '5',
        ],
        'index' => 0,
      ]),
      new ResultRow([
        'field' => [
          '4',
        ],
        'index' => 1,
      ]),
      new ResultRow([
        'field' => [
          '1',
        ],
        'index' => 2,
      ]),
      new ResultRow([
        'field' => [
          '1',
        ],
        'index' => 3,
      ]),
      new ResultRow([
        'field' => [
          '3',
        ],
        'index' => 4,
      ]),
      new ResultRow([
        'field' => [
          '2',
        ],
        'index' => 5,
      ]),
    ];
    $sorter($result);
    $values = [
      2 => '1',
      3 => '1',
      5 => '2',
      4 => '3',
      1 => '4',
      0 => '5',
    ];
    foreach ($values as $index => $value) {
      $row = array_shift($result);
      $this
        ->assertSame([
        $value,
      ], $row->field);
      $this
        ->assertSame($index, $row->index);
    }
  }
  public function testDesc() {
    $sorter = $this
      ->getSorter('field', 'DESC');
    $result = [
      new ResultRow([
        'field' => [
          '5',
        ],
        'index' => 0,
      ]),
      new ResultRow([
        'field' => [
          '4',
        ],
        'index' => 1,
      ]),
      new ResultRow([
        'field' => [
          '1',
        ],
        'index' => 2,
      ]),
      new ResultRow([
        'field' => [
          '1',
        ],
        'index' => 3,
      ]),
      new ResultRow([
        'field' => [
          '3',
        ],
        'index' => 4,
      ]),
      new ResultRow([
        'field' => [
          '2',
        ],
        'index' => 5,
      ]),
    ];
    $sorter($result);
    $values = [
      0 => '5',
      1 => '4',
      4 => '3',
      5 => '2',
      2 => '1',
      3 => '1',
    ];
    foreach ($values as $index => $value) {
      $row = array_shift($result);
      $this
        ->assertSame([
        $value,
      ], $row->field);
      $this
        ->assertSame($index, $row->index);
    }
  }
  protected function getSorter($field, $direction) {
    return new StringSorter($field, $direction);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
StringSorterTest::getSorter protected function 2
StringSorterTest::testAsc public function
StringSorterTest::testDesc public function
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
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::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.
ViewsXmlBackendTestBase::$display protected property
ViewsXmlBackendTestBase::$view protected property
ViewsXmlBackendTestBase::getMockedDisplay protected function
ViewsXmlBackendTestBase::getMockedView protected function
ViewsXmlBackendTestBase::setUp public function Overrides UnitTestCase::setUp 1