Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ComplexParameterTest.php
Go to the documentation of this file.
1 <?php
8 
9 use \Magento\Framework\Shell\ComplexParameter;
10 
11 class ComplexParameterTest extends \PHPUnit\Framework\TestCase
12 {
13  public function testGetFromArray()
14  {
15  $object = new ComplexParameter('baz');
16  $this->assertSame([], $object->getFromArray(['--foo', '--bar']));
17  $this->assertSame([], $object->getFromArray(['--foo', '--bar', '--baz']));
18  $this->assertSame([1 => ''], $object->getFromArray(['--foo', '--bar', '--baz=1']));
19  }
20 
26  public function testGetFromString($str, $expected)
27  {
28  $object = new ComplexParameter('foo');
29  $this->assertSame($expected, $object->getFromString($str));
30  }
31 
35  public function getFromStringDataProvider()
36  {
37  return [
38  ['--not-matching', []],
39  ['--foo', []],
40  ['--foo=', []],
41  ['--foo=1', [1 => '']],
42  ['--foo=bar=1&baz=2', ['bar' => '1', 'baz' => '2']],
43  ['--foo=bar[1]=2&baz[3]=4', ['bar' => [1 => '2'], 'baz' => [3 => '4']]],
44  ['--foo=bar[one]=value1&bar[two]=value2', ['bar' => ['one' => 'value1', 'two' => 'value2']]],
45  ];
46  }
47 
48  public function testPattern()
49  {
50  $object = new ComplexParameter('f', '/^-%s=(bar|baz)$/');
51  $this->assertSame([], $object->getFromString('-f=1'));
52  $this->assertSame(['bar' => ''], $object->getFromString('-f=bar'));
53  $this->assertSame(['baz' => ''], $object->getFromString('-f=baz'));
54  }
55 
56  public function testMergeFromArgv()
57  {
58  $object = new ComplexParameter('foo');
59  $server = ['argv' => ['--foo=bar=value1', '--nonfoo=value2']];
60  $into = ['baz' => 'value3'];
61  $this->assertSame(['baz' => 'value3', 'bar' => 'value1'], $object->mergeFromArgv($server, $into));
62  }
63 }