Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AbstractExtensibleObjectTest.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Framework\Api;
7 
8 use Magento\TestModuleExtensionAttributes\Model\Data\FakeRegionFactory;
9 use Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtension;
10 
14 class AbstractExtensibleObjectTest extends \PHPUnit\Framework\TestCase
15 {
17  private $_objectManager;
18 
19  protected function setUp()
20  {
22  $this->_objectManager->configure(
23  [
24  'preferences' => [
25  \Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressInterface::class =>
26  \Magento\TestModuleExtensionAttributes\Model\FakeAddress::class,
27  \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionInterface::class =>
28  \Magento\TestModuleExtensionAttributes\Model\FakeRegion::class,
29  ],
30  ]
31  );
32  }
33 
41  public function testExtensionAttributes($expectedDataBefore, $expectedDataAfter)
42  {
44  $regionExtensionFactory = $this->_objectManager->get(\Magento\Framework\Api\ExtensionAttributesFactory::class);
46  $regionFactory = $this->_objectManager->get(FakeRegionFactory::class);
47 
49  $region = $regionFactory->create();
50 
51  $regionCode = 'test_code';
53  $regionExtension = $regionExtensionFactory->create(
54  \Magento\TestModuleExtensionAttributes\Model\Data\FakeRegion::class,
55  ['data' => $expectedDataBefore]
56  );
57  $region->setRegionCode($regionCode)->setExtensionAttributes($regionExtension);
58  $this->assertInstanceOf(\Magento\TestModuleExtensionAttributes\Model\Data\FakeRegion::class, $region);
59 
60  $extensionAttributes = $region->getExtensionAttributes();
61  $this->assertInstanceOf(FakeRegionExtension::class, $extensionAttributes);
62  $this->assertEquals($expectedDataBefore, $extensionAttributes->__toArray());
63  $this->assertEquals($regionCode, $region->getRegionCode());
64 
65  $regionCode = 'changed_test_code';
66  $region->setExtensionAttributes(
67  $regionExtensionFactory->create(
68  \Magento\TestModuleExtensionAttributes\Model\Data\FakeRegion::class,
69  ['data' => $expectedDataAfter]
70  )
71  )->setRegionCode($regionCode); // change $regionCode to test AbstractExtensibleObject::setData
72  $extensionAttributes = $region->getExtensionAttributes();
73  $this->assertEquals($expectedDataAfter, $extensionAttributes->__toArray());
74  $this->assertEquals($regionCode, $region->getRegionCode());
75  }
76 
78  {
79  return [
80  'boolean' => [
81  [true],
82  [false]
83  ],
84  'integer' => [
85  [1],
86  [2]
87  ],
88  'string' => [
89  ['test'],
90  ['test test']
91  ],
92  'array' => [
93  [[1]],
94  [[1, 2]]
95  ]
96  ];
97  }
98 }
$extensionAttributes
Definition: payment.php:22