drupalmoduleupgrader-8.x-1.5/tests/src/Unit/Plugin/DMU/Rewriter/FormStateTest.php
tests/src/Unit/Plugin/DMU/Rewriter/FormStateTest.php
<?php
namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Rewriter;
use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
use Pharborist\Parser;
/**
* @group DMU.Rewriter
* @covers \Drupal\drupalmoduleupgrader\Plugin\DMU\Rewriter\FormState
*/
class FormStateTest extends TestBase {
/**
* @var \Drupal\drupalmoduleupgrader\RewriterInterface
*/
protected $plugin;
public function setUp(): void {
parent::setUp();
$definition = [
'properties' => [
'input' => [
'get' => 'getUserInput',
'set' => 'setUserInput',
],
],
];
$this->plugin = $this->getPlugin([], $definition);
}
public function testRewriteValuesAsGetter() {
$expr = Parser::parseExpression('$form_state["values"]');
$rewritten = $this->plugin->rewriteAsGetter($expr, 'values');
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->getValues()', $rewritten->getText());
$expr = Parser::parseExpression('$form_state["values"]["foo"]');
$rewritten = $this->plugin->rewriteAsGetter($expr, 'values');
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->getValue(["foo"])', $rewritten->getText());
$expr = Parser::parseExpression('$form_state["values"]["foo"][0]');
$rewritten = $this->plugin->rewriteAsGetter($expr, 'values');
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->getValue(["foo", 0])', $rewritten->getText());
}
public function testRewriteKnownPropertyAsGetter() {
$expr = Parser::parseExpression('$form_state["input"]');
$rewritten = $this->plugin->rewriteAsGetter($expr, 'input');
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->getUserInput()', $rewritten->getText());
}
public function testRewriteArbitraryKeyAsGetter() {
$expr = Parser::parseExpression('$form_state["foo"]["baz"]');
$rewritten = $this->plugin->rewriteAsGetter($expr, 'foo');
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->get(["foo", "baz"])', $rewritten->getText());
}
public function testRewriteValuesAsSetter() {
/** @var \Pharborist\Operators\AssignNode $expr */
$expr = Parser::parseExpression('$form_state["values"]["foo"] = "baz"');
$rewritten = $this->plugin->rewriteAsSetter($expr->getLeftOperand(), 'values', $expr);
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->setValue(["foo"], "baz")', $rewritten->getText());
$expr = Parser::parseExpression('$form_state["values"]["foo"][1] = "bar"');
$rewritten = $this->plugin->rewriteAsSetter($expr->getLeftOperand(), 'values', $expr);
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->setValue(["foo", 1], "bar")', $rewritten->getText());
}
public function testRewriteKnownPropertyAsSetter() {
/** @var \Pharborist\Operators\AssignNode $expr */
$expr = Parser::parseExpression('$form_state["input"] = array()');
$rewritten = $this->plugin->rewriteAsSetter($expr->getLeftOperand(), 'input', $expr);
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->setUserInput(array())', $rewritten->getText());
}
public function testRewriteArbitraryKeyAsSetter() {
/** @var \Pharborist\Operators\AssignNode $expr */
$expr = Parser::parseExpression('$form_state["foo"]["baz"] = "bar"');
$rewritten = $this->plugin->rewriteAsSetter($expr->getLeftOperand(), 'foo', $expr);
$this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
$this->assertEquals('$form_state->set(["foo", "baz"], "bar")', $rewritten->getText());
}
}
