public function ContentEntityFieldMethodInvocationOrderTest::testFieldMethodInvocationOrder in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/KernelTests/Core/Entity/ContentEntityFieldMethodInvocationOrderTest.php \Drupal\KernelTests\Core\Entity\ContentEntityFieldMethodInvocationOrderTest::testFieldMethodInvocationOrder()
Tests correct field method invocation order.
File
- core/tests/ Drupal/ KernelTests/ Core/ Entity/ ContentEntityFieldMethodInvocationOrderTest.php, line 46 
Class
- ContentEntityFieldMethodInvocationOrderTest
- Tests correct field method invocation order.
Namespace
Drupal\KernelTests\Core\EntityCode
public function testFieldMethodInvocationOrder() {
  // Create a test entity.
  $entity = $this->entityTestFieldMethodsStorage
    ->create([
    'name' => $this
      ->randomString(),
    'langcode' => 'de',
  ]);
  $entity
    ->save();
  $entity
    ->addTranslation('fr')
    ->save();
  // Reset the current value of the test field.
  foreach ([
    'de',
    'fr',
  ] as $langcode) {
    $entity
      ->getTranslation($langcode)->test_invocation_order->value = 0;
  }
  $entity
    ->getTranslation('de')
    ->save();
  // Verify that the field presave method has been invoked in the correct
  // entity translation order.
  $this
    ->assertGreaterThan($entity
    ->getTranslation('de')->test_invocation_order->value, $entity
    ->getTranslation('fr')->test_invocation_order->value);
  // Reset the current value of the test field.
  foreach ([
    'de',
    'fr',
  ] as $langcode) {
    $entity
      ->getTranslation($langcode)->test_invocation_order->value = 0;
  }
  $entity
    ->getTranslation('fr')
    ->save();
  // Verify that the field presave method has been invoked in the correct
  // entity translation order.
  $this
    ->assertGreaterThan($entity
    ->getTranslation('fr')->test_invocation_order->value, $entity
    ->getTranslation('de')->test_invocation_order->value);
}