123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Eav\Test\Unit\Helper;
- use Magento\Store\Model\ScopeInterface;
- class DataTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \Magento\Eav\Helper\Data
- */
- protected $helper;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $eavConfig;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $attributeConfig;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $context;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $scopeConfigMock;
- /**
- * Initialize helper
- */
- protected function setUp()
- {
- $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->attributeConfig = $this->createMock(\Magento\Eav\Model\Entity\Attribute\Config::class);
- $this->eavConfig = $this->createMock(\Magento\Eav\Model\Config::class);
- $this->context = $this->createPartialMock(\Magento\Framework\App\Helper\Context::class, ['getScopeConfig']);
- $this->scopeConfigMock = $this->createMock(\Magento\Framework\App\Config\ScopeConfigInterface::class);
- $this->context->expects($this->once())->method('getScopeConfig')->willReturn($this->scopeConfigMock);
- $this->helper = $objectManager->getObject(
- \Magento\Eav\Helper\Data::class,
- [
- 'attributeConfig' => $this->attributeConfig,
- 'eavConfig' => $this->eavConfig,
- 'context' => $this->context,
- ]
- );
- }
- public function testGetAttributeMetadata()
- {
- $attribute = new \Magento\Framework\DataObject([
- 'entity_type_id' => '1',
- 'attribute_id' => '2',
- 'backend' => new \Magento\Framework\DataObject(['table' => 'customer_entity_varchar']),
- 'backend_type' => 'varchar',
- ]);
- $this->eavConfig->expects($this->once())
- ->method('getAttribute')
- ->will($this->returnValue($attribute));
- $result = $this->helper->getAttributeMetadata('customer', 'lastname');
- $expected = [
- 'entity_type_id' => '1',
- 'attribute_id' => '2',
- 'attribute_table' => 'customer_entity_varchar',
- 'backend_type' => 'varchar',
- ];
- foreach ($result as $key => $value) {
- $this->assertArrayHasKey($key, $expected, 'Attribute metadata with key "' . $key . '" not found.');
- $this->assertEquals(
- $expected[$key],
- $value,
- 'Attribute metadata with key "' . $key . '" has invalid value.'
- );
- }
- }
- /**
- * @covers \Magento\Eav\Helper\Data::getFrontendClasses
- * @covers \Magento\Eav\Helper\Data::_getDefaultFrontendClasses
- */
- public function testGetFrontendClasses()
- {
- $result = $this->helper->getFrontendClasses('someNonExistedClass');
- $this->assertTrue(count($result) > 1);
- $this->assertContains(['value' => '', 'label' => 'None'], $result);
- $this->assertContains(['value' => 'validate-number', 'label' => 'Decimal Number'], $result);
- }
- /**
- * @covers \Magento\Eav\Helper\Data::getAttributeLockedFields
- */
- public function testGetAttributeLockedFieldsNoEntityCode()
- {
- $this->attributeConfig->expects($this->never())->method('getEntityAttributesLockedFields');
- $this->assertEquals([], $this->helper->getAttributeLockedFields(''));
- }
- /**
- * @covers \Magento\Eav\Helper\Data::getAttributeLockedFields
- */
- public function testGetAttributeLockedFieldsNonCachedLockedFiled()
- {
- $lockedFields = ['lockedField1', 'lockedField2'];
- $this->attributeConfig->expects($this->once())->method('getEntityAttributesLockedFields')
- ->with('entityTypeCode')->will($this->returnValue($lockedFields));
- $this->assertEquals($lockedFields, $this->helper->getAttributeLockedFields('entityTypeCode'));
- }
- /**
- * @covers \Magento\Eav\Helper\Data::getAttributeLockedFields
- */
- public function testGetAttributeLockedFieldsCachedLockedFiled()
- {
- $lockedFields = ['lockedField1', 'lockedField2'];
- $this->attributeConfig->expects($this->once())->method('getEntityAttributesLockedFields')
- ->with('entityTypeCode')->will($this->returnValue($lockedFields));
- $this->helper->getAttributeLockedFields('entityTypeCode');
- $this->assertEquals($lockedFields, $this->helper->getAttributeLockedFields('entityTypeCode'));
- }
- /**
- * @covers \Magento\Eav\Helper\Data::getAttributeLockedFields
- */
- public function testGetAttributeLockedFieldsNoLockedFields()
- {
- $this->attributeConfig->expects($this->once())->method('getEntityAttributesLockedFields')
- ->with('entityTypeCode')->will($this->returnValue([]));
- $this->assertEquals([], $this->helper->getAttributeLockedFields('entityTypeCode'));
- }
- public function testGetInputTypesValidatorData()
- {
- $configValue = 'config_value';
- $this->scopeConfigMock->expects($this->once())
- ->method('getValue')
- ->with(\Magento\Eav\Helper\Data::XML_PATH_VALIDATOR_DATA_INPUT_TYPES, ScopeInterface::SCOPE_STORE)
- ->willReturn($configValue);
- $this->assertEquals($configValue, $this->helper->getInputTypesValidatorData());
- }
- }
|