/** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function testAddDynamicDataWithStaticAndFilterable() { $existentName = 'field'; $existentField = ['name' => $existentName, 'handler' => 'handler', 'origin' => $existentName, 'type' => 'type', 'filters' => ['filter'], 'dataType' => 'data_type']; $data = ['fields' => [$existentName => $existentField], 'references' => ['customer' => ['to' => 'to_field']]]; $attrName = $existentName; $attrBackendType = 'varchar'; $attrFrontendInput = 'text'; /** @var \Magento\Eav\Model\Entity\Type|\PHPUnit_Framework_MockObject_MockObject $collectionMock $entityType */ $entityType = $this->getMockBuilder('Magento\\Eav\\Model\\Entity\\Type')->disableOriginalConstructor()->getMock(); /** @var Collection|\PHPUnit_Framework_MockObject_MockObject $collectionMock */ $collectionMock = $this->getMockBuilder('Magento\\Eav\\Model\\ResourceModel\\Entity\\Attribute\\Collection')->disableOriginalConstructor()->getMock(); /** @var \Magento\Customer\Model\ResourceModel\Customer|\PHPUnit_Framework_MockObject_MockObject $entity */ $entity = $this->getMockBuilder('Magento\\Customer\\Model\\ResourceModel\\Customer')->disableOriginalConstructor()->getMock(); /** @var \Magento\Customer\Model\Attribute|\PHPUnit_Framework_MockObject_MockObject $attribute */ $attribute = $this->getMockBuilder('Magento\\Customer\\Model\\Attribute')->disableOriginalConstructor()->setMethods(['setEntity', 'getName', 'getFrontendInput', 'getBackendType', 'canBeSearchableInGrid', 'canBeFilterableInGrid', 'getData'])->getMock(); $this->eavConfig->expects($this->once())->method('getEntityType')->with(Customer::ENTITY)->willReturn($entityType); $entityType->expects($this->once())->method('getAttributeCollection')->willReturn($collectionMock); $collectionMock->expects($this->once())->method('getItems')->willReturn([$attribute]); $entityType->expects($this->once())->method('getEntity')->willReturn($entity); $attribute->expects($this->once())->method('setEntity')->with($entity)->willReturnSelf(); $attribute->expects($this->exactly(3))->method('getName')->willReturn($attrName); $attribute->expects($this->any())->method('getFrontendInput')->willReturn($attrFrontendInput); $attribute->expects($this->any())->method('getBackendType')->willReturn($attrBackendType); $attribute->expects($this->any())->method('canBeSearchableInGrid')->willReturn(false); $attribute->expects($this->any())->method('canBeFilterableInGrid')->willReturn(true); $attribute->expects($this->any())->method('getData')->willReturnMap([['is_used_in_grid', null, true]]); $this->assertEquals(['fields' => [$attrName => ['name' => $attrName, 'handler' => 'Magento\\Framework\\Indexer\\Handler\\AttributeHandler', 'origin' => $attrName, 'type' => 'filterable', 'filters' => [], 'dataType' => 'varchar', 'entity' => Customer::ENTITY, 'bind' => 'to_field']], 'references' => ['customer' => ['to' => 'to_field']]], $this->object->addDynamicData($data)); }
/** * @param Config $eavConfig */ public function __construct(Config $eavConfig) { parent::__construct($eavConfig); }