Issue #3433093 by mondrake: Method getObjectForTrait() of class PHPUnit\Framework\TestCase is deprecated in PHPUnit 10
(cherry picked from commit 2dad474438
)
merge-requests/7287/head
parent
0590956f51
commit
74631a1331
|
@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||||
namespace Drupal\Tests\Core\StringTranslation;
|
namespace Drupal\Tests\Core\StringTranslation;
|
||||||
|
|
||||||
use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
|
use Drupal\Core\StringTranslation\PluralTranslatableMarkup;
|
||||||
|
use Drupal\Core\StringTranslation\StringTranslationTrait;
|
||||||
use Drupal\Core\StringTranslation\TranslatableMarkup;
|
use Drupal\Core\StringTranslation\TranslatableMarkup;
|
||||||
use Drupal\Core\StringTranslation\TranslationInterface;
|
use Drupal\Core\StringTranslation\TranslationInterface;
|
||||||
use Drupal\Tests\UnitTestCase;
|
use Drupal\Tests\UnitTestCase;
|
||||||
|
@ -17,19 +18,9 @@ use Prophecy\Argument;
|
||||||
class StringTranslationTraitTest extends UnitTestCase {
|
class StringTranslationTraitTest extends UnitTestCase {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A reflection of self::$translation.
|
* The object under test that uses StringTranslationTrait.
|
||||||
*
|
|
||||||
* @var \ReflectionClass
|
|
||||||
*/
|
*/
|
||||||
protected $reflection;
|
protected object $testObject;
|
||||||
|
|
||||||
/**
|
|
||||||
* The mock under test that uses StringTranslationTrait.
|
|
||||||
*
|
|
||||||
* @var object
|
|
||||||
* @see \PHPUnit\Framework\MockObject\Generator::getObjectForTrait()
|
|
||||||
*/
|
|
||||||
protected $translation;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
|
@ -37,24 +28,29 @@ class StringTranslationTraitTest extends UnitTestCase {
|
||||||
protected function setUp(): void {
|
protected function setUp(): void {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
|
||||||
$this->translation = $this->getObjectForTrait('\Drupal\Core\StringTranslation\StringTranslationTrait');
|
// Prepare a mock translation service to pass to the trait.
|
||||||
$mock = $this->prophesize(TranslationInterface::class);
|
$translation = $this->prophesize(TranslationInterface::class);
|
||||||
$mock->translate(Argument::cetera())->shouldNotBeCalled();
|
$translation->translate(Argument::cetera())->shouldNotBeCalled();
|
||||||
$mock->formatPlural(Argument::cetera())->shouldNotBeCalled();
|
$translation->formatPlural(Argument::cetera())->shouldNotBeCalled();
|
||||||
$mock->translateString(Argument::cetera())->will(function ($args) {
|
$translation->translateString(Argument::cetera())->will(function ($args) {
|
||||||
return $args[0]->getUntranslatedString();
|
return $args[0]->getUntranslatedString();
|
||||||
});
|
});
|
||||||
$this->translation->setStringTranslation($mock->reveal());
|
|
||||||
$this->reflection = new \ReflectionClass(get_class($this->translation));
|
// Set up the object under test.
|
||||||
|
$this->testObject = new class() {
|
||||||
|
|
||||||
|
use StringTranslationTrait;
|
||||||
|
|
||||||
|
};
|
||||||
|
$this->testObject->setStringTranslation($translation->reveal());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers ::t
|
* @covers ::t
|
||||||
*/
|
*/
|
||||||
public function testT() {
|
public function testT(): void {
|
||||||
$method = $this->reflection->getMethod('t');
|
$invokableT = new \ReflectionMethod($this->testObject, 't');
|
||||||
|
$result = $invokableT->invoke($this->testObject, 'something');
|
||||||
$result = $method->invoke($this->translation, 'something');
|
|
||||||
$this->assertInstanceOf(TranslatableMarkup::class, $result);
|
$this->assertInstanceOf(TranslatableMarkup::class, $result);
|
||||||
$this->assertEquals('something', $result);
|
$this->assertEquals('something', $result);
|
||||||
}
|
}
|
||||||
|
@ -62,10 +58,12 @@ class StringTranslationTraitTest extends UnitTestCase {
|
||||||
/**
|
/**
|
||||||
* @covers ::formatPlural
|
* @covers ::formatPlural
|
||||||
*/
|
*/
|
||||||
public function testFormatPlural() {
|
public function testFormatPlural(): void {
|
||||||
$method = $this->reflection->getMethod('formatPlural');
|
$invokableFormatPlural = new \ReflectionMethod($this->testObject, 'formatPlural');
|
||||||
|
$result = $invokableFormatPlural->invoke($this->testObject, 1, 'apple', 'apples');
|
||||||
$result = $method->invoke($this->translation, 2, 'apple', 'apples');
|
$this->assertInstanceOf(PluralTranslatableMarkup::class, $result);
|
||||||
|
$this->assertEquals('apple', $result);
|
||||||
|
$result = $invokableFormatPlural->invoke($this->testObject, 2, 'apple', 'apples');
|
||||||
$this->assertInstanceOf(PluralTranslatableMarkup::class, $result);
|
$this->assertInstanceOf(PluralTranslatableMarkup::class, $result);
|
||||||
$this->assertEquals('apples', $result);
|
$this->assertEquals('apples', $result);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue