You are here

public function ConfigEntityBaseUnitTest::testSort in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php \Drupal\Tests\Core\Config\Entity\ConfigEntityBaseUnitTest::testSort()
  2. 10 core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php \Drupal\Tests\Core\Config\Entity\ConfigEntityBaseUnitTest::testSort()

@covers ::sort

File

core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php, line 513
Contains \Drupal\Tests\Core\Config\Entity\ConfigEntityBaseUnitTest.

Class

ConfigEntityBaseUnitTest
@coversDefaultClass \Drupal\Core\Config\Entity\ConfigEntityBase @group Config

Namespace

Drupal\Tests\Core\Config\Entity

Code

public function testSort() {
  $this->entityTypeManager
    ->expects($this
    ->any())
    ->method('getDefinition')
    ->with($this->entityTypeId)
    ->will($this
    ->returnValue([
    'entity_keys' => [
      'label' => 'label',
    ],
  ]));
  $entity_a = $this
    ->createMock('\\Drupal\\Core\\Config\\Entity\\ConfigEntityInterface');
  $entity_a
    ->expects($this
    ->atLeastOnce())
    ->method('label')
    ->willReturn('foo');
  $entity_b = $this
    ->createMock('\\Drupal\\Core\\Config\\Entity\\ConfigEntityInterface');
  $entity_b
    ->expects($this
    ->atLeastOnce())
    ->method('label')
    ->willReturn('bar');

  // Test sorting by label.
  $list = [
    $entity_a,
    $entity_b,
  ];

  // Suppress errors because of https://bugs.php.net/bug.php?id=50688.
  @usort($list, '\\Drupal\\Core\\Config\\Entity\\ConfigEntityBase::sort');
  $this
    ->assertSame($entity_b, $list[0]);
  $list = [
    $entity_b,
    $entity_a,
  ];

  // Suppress errors because of https://bugs.php.net/bug.php?id=50688.
  @usort($list, '\\Drupal\\Core\\Config\\Entity\\ConfigEntityBase::sort');
  $this
    ->assertSame($entity_b, $list[0]);

  // Test sorting by weight.
  $entity_a->weight = 0;
  $entity_b->weight = 1;
  $list = [
    $entity_b,
    $entity_a,
  ];

  // Suppress errors because of https://bugs.php.net/bug.php?id=50688.
  @usort($list, '\\Drupal\\Core\\Config\\Entity\\ConfigEntityBase::sort');
  $this
    ->assertSame($entity_a, $list[0]);
  $list = [
    $entity_a,
    $entity_b,
  ];

  // Suppress errors because of https://bugs.php.net/bug.php?id=50688.
  @usort($list, '\\Drupal\\Core\\Config\\Entity\\ConfigEntityBase::sort');
  $this
    ->assertSame($entity_a, $list[0]);
}