NodeLoadTest.php in Drupal 7 to 8/9 Module Upgrader 8
File
tests/src/Unit/Plugin/DMU/Converter/Functions/NodeLoadTest.php
View source
<?php
namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Converter\Functions;
use Pharborist\Filter;
use Pharborist\Parser;
class NodeLoadTest extends FunctionCallModifierTestBase {
public function testRewriteWithNidOnly() {
$function_call = Parser::parseExpression('node_load(30)');
$rewritten = $this->plugin
->rewrite($function_call, $this->target);
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('\\Drupal::entityTypeManager()->getStorage(\'node\')->load(30)', $rewritten
->getText());
}
public function testRewriteWithVid() {
$function_call = Parser::parseExpression('node_load(30, 32)');
$rewritten = $this->plugin
->rewrite($function_call, $this->target);
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('\\Drupal::entityTypeManager()->getStorage(\'node\')->loadRevision(32)', $rewritten
->getText());
}
public function _testRewriteWithCacheReset() {
$original = <<<'END'
node_load(30);
node_load(30, TRUE);
node_load(30, 32);
node_load(30, 32, TRUE);
END;
$expected = <<<'END'
\Drupal::entityTypeManager()->getStorage('user')->load(30);
// FIXME: To reset the node cache, use EntityStorageInterface::resetCache().
\Drupal::entityTypeManager()->getStorage('user')->load(30);
\Drupal::entityTypeManager()->getStorage('user')->loadRevision(32);
// FIXME: To reset the node cache, use EntityStorageInterface::resetCache().
\Drupal::entityTypeManager()->getStorage('user')->loadRevision(32);
END;
$snippet = Parser::parseSnippet($original);
$function_calls = $snippet
->children(Filter::isFunctionCall('node_load'));
foreach ($function_calls as $function_call) {
$rewritten = $this->plugin
->rewrite($function_call, $this->target);
$function_call
->replaceWith($rewritten);
}
$this
->assertEquals($expected, $snippet
->getText());
}
}