Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ParamsOverriderTest.php
Go to the documentation of this file.
1 <?php
8 
9 use \Magento\Authorization\Model\UserContextInterface;
10 
14 class ParamsOverriderTest extends \PHPUnit\Framework\TestCase
15 {
25  public function testOverrideParams($requestData, $parameters, $expectedOverriddenParams, $userId, $userType)
26  {
27  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
28 
29  $userContextMock = $this->getMockBuilder(\Magento\Authorization\Model\UserContextInterface::class)
30  ->disableOriginalConstructor()->setMethods(['getUserId', 'getUserType'])->getMockForAbstractClass();
31  $userContextMock->expects($this->any())->method('getUserId')->will($this->returnValue($userId));
32  $userContextMock->expects($this->any())->method('getUserType')->will($this->returnValue($userType));
33 
34  $paramOverriderCustomerId = $objectManager->getObject(
35  \Magento\Webapi\Controller\Rest\ParamOverriderCustomerId::class,
36  ['userContext' => $userContextMock]
37  );
38 
40  $paramsOverrider = $objectManager->getObject(
41  \Magento\Webapi\Controller\Rest\ParamsOverrider::class,
42  ['paramOverriders' => ['%customer_id%' => $paramOverriderCustomerId ]]
43  );
44 
45  $this->assertEquals($expectedOverriddenParams, $paramsOverrider->override($requestData, $parameters));
46  }
47 
51  public function overrideParamsDataProvider()
52  {
53  return [
54  'force false, value present' => [
55  ['Name1' => 'valueIn'],
56  ['Name1' => ['force' => false, 'value' => 'valueOverride']],
57  ['Name1' => 'valueIn'],
58  1,
60  ],
61  'force true, value present' => [
62  ['Name1' => 'valueIn'],
63  ['Name1' => ['force' => true, 'value' => 'valueOverride']],
64  ['Name1' => 'valueOverride'],
65  1,
67  ],
68  'force true, value not present' => [
69  ['Name1' => 'valueIn'],
70  ['Name2' => ['force' => true, 'value' => 'valueOverride']],
71  ['Name1' => 'valueIn', 'Name2' => 'valueOverride'],
72  1,
74  ],
75  'force false, value not present' => [
76  ['Name1' => 'valueIn'],
77  ['Name2' => ['force' => false, 'value' => 'valueOverride']],
78  ['Name1' => 'valueIn', 'Name2' => 'valueOverride'],
79  1,
81  ],
82  'force true, value present, override value is %customer_id%' => [
83  ['Name1' => 'valueIn'],
84  ['Name1' => ['force' => true, 'value' => '%customer_id%']],
85  ['Name1' => '1234'],
86  1234,
88  ],
89  'force true, value present, override value is %customer_id%, not a customer' => [
90  ['Name1' => 'valueIn'],
91  ['Name1' => ['force' => true, 'value' => '%customer_id%']],
92  ['Name1' => null],
93  1234,
95  ],
96  ];
97  }
98 }
$objectManager
Definition: bootstrap.php:17