StringTranslationTraitTest.php in Drupal 10
File
core/tests/Drupal/Tests/Core/StringTranslation/StringTranslationTraitTest.php
View source
<?php
namespace Drupal\Tests\Core\StringTranslation;
use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\Core\StringTranslation\TranslationInterface;
use Drupal\Tests\UnitTestCase;
use Prophecy\Argument;
class StringTranslationTraitTest extends UnitTestCase {
protected $reflection;
protected $translation;
protected function setUp() : void {
$this->translation = $this
->getObjectForTrait('\\Drupal\\Core\\StringTranslation\\StringTranslationTrait');
$mock = $this
->prophesize(TranslationInterface::class);
$mock
->translate(Argument::cetera())
->shouldNotBeCalled();
$mock
->formatPlural(Argument::cetera())
->shouldNotBeCalled();
$mock
->translateString(Argument::cetera())
->will(function ($args) {
return $args[0]
->getUntranslatedString();
});
$this->translation
->setStringTranslation($mock
->reveal());
$this->reflection = new \ReflectionClass(get_class($this->translation));
}
public function testT() {
$method = $this->reflection
->getMethod('t');
$method
->setAccessible(TRUE);
$result = $method
->invoke($this->translation, 'something');
$this
->assertInstanceOf(TranslatableMarkup::class, $result);
$this
->assertEquals('something', $result);
}
public function testFormatPlural() {
$method = $this->reflection
->getMethod('formatPlural');
$method
->setAccessible(TRUE);
$result = $method
->invoke($this->translation, 2, 'apple', 'apples');
$this
->assertInstanceOf(PluralTranslatableMarkup::class, $result);
$this
->assertEquals('apples', $result);
}
}