objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); $this->model = $this->objectManager->get( \Magento\Catalog\Model\ResourceModel\Attribute::class ); $this->productResource = $this->objectManager->get( \Magento\Catalog\Model\ResourceModel\Product::class ); $this->productRepository = $this->objectManager->create(ProductRepositoryInterface::class); $this->metadataPool = $this->objectManager->get(MetadataPool::class); } /** * Retrieve eav attribute row. * * @param int $entityTypeId * @param int $attributeSetId * @param int $attributeId * @return array|false */ private function getEavEntityAttributeRow(int $entityTypeId, int $attributeSetId, int $attributeId) { $connection = $this->productResource->getConnection(); $select = $connection->select() ->from($this->productResource->getTable('eav_entity_attribute')) ->where('attribute_set_id=?', $attributeSetId) ->where('attribute_id=?', $attributeId) ->where('entity_type_id=?', $entityTypeId); return $connection->fetchRow($select); } /** * Test to delete entity attribute with type "Fixed Product Tax". * * @magentoDataFixture Magento/Weee/_files/fixed_product_attribute.php * @return void */ public function testDeleteEntityFixedTax() : void { /* @var EavAttribute $attribute */ $attribute = $this->objectManager->get(EavAttribute::class); $attribute->loadByCode(\Magento\Catalog\Model\Product::ENTITY, 'fixed_product_attribute'); $entityEavAttributeRow = $this->getEavEntityAttributeRow( (int)$attribute->getEntityTypeId(), 4, (int)$attribute->getId() ); $this->assertNotEmpty( $entityEavAttributeRow['entity_attribute_id'], 'The record is absent in table `eav_entity_attribute` for `fixed_product_attribute`' ); $attribute->setData('entity_attribute_id', $entityEavAttributeRow['entity_attribute_id']); $this->model->deleteEntity($attribute); $entityEavAttributeRow = $this->getEavEntityAttributeRow( (int)$attribute->getEntityTypeId(), 4, (int)$attribute->getId() ); $this->assertEmpty( $entityEavAttributeRow, 'The record was not removed from table `eav_entity_attribute` for `fixed_product_attribute`' ); } }