113 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 *
 | 
						|
 */
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace Magento\MediaContentCms\Model\ResourceModel;
 | 
						|
 | 
						|
use Magento\Framework\Exception\InvalidArgumentException;
 | 
						|
use Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface;
 | 
						|
use Magento\TestFramework\Helper\Bootstrap;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
 | 
						|
/**
 | 
						|
 * Test for GetAssetIdsByContentFieldTest
 | 
						|
 */
 | 
						|
class GetAssetIdsByContentFieldTest extends TestCase
 | 
						|
{
 | 
						|
    private const STORE_FIELD = 'store_id';
 | 
						|
    private const STATUS_FIELD = 'content_status';
 | 
						|
    private const STATUS_ENABLED = '1';
 | 
						|
    private const STATUS_DISABLED = '0';
 | 
						|
    private const FIXTURE_ASSET_ID = 2020;
 | 
						|
    private const DEFAULT_STORE_ID = '1';
 | 
						|
    private const ADMIN_STORE_ID = '0';
 | 
						|
 | 
						|
    /**
 | 
						|
     * @var GetAssetIdsByContentFieldInterface
 | 
						|
     */
 | 
						|
    private $getAssetIdsByContentField;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @inheritdoc
 | 
						|
     */
 | 
						|
    protected function setUp(): void
 | 
						|
    {
 | 
						|
        $objectManager = Bootstrap::getObjectManager();
 | 
						|
        $this->getAssetIdsByContentField = $objectManager->get(GetAssetIdsByContentFieldInterface::class);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Test for getting asset id by block field
 | 
						|
     *
 | 
						|
     * @dataProvider blockDataProvider
 | 
						|
     * @magentoConfigFixture system/media_gallery/enabled 1
 | 
						|
     * @magentoDataFixture Magento/MediaGallery/_files/media_asset.php
 | 
						|
     * @magentoDataFixture Magento/MediaContentCms/_files/block_with_asset.php
 | 
						|
     *
 | 
						|
     * @param string $field
 | 
						|
     * @param string $value
 | 
						|
     * @param array $expectedAssetIds
 | 
						|
     * @throws InvalidArgumentException
 | 
						|
     */
 | 
						|
    public function testBlockFields(string $field, string $value, array $expectedAssetIds): void
 | 
						|
    {
 | 
						|
        $this->assertEquals(
 | 
						|
            $expectedAssetIds,
 | 
						|
            $this->getAssetIdsByContentField->execute($field, $value)
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Test for getting asset id by page field
 | 
						|
     *
 | 
						|
     * @dataProvider pageDataProvider
 | 
						|
     * @magentoConfigFixture system/media_gallery/enabled 1
 | 
						|
     * @magentoDataFixture Magento/MediaGallery/_files/media_asset.php
 | 
						|
     * @magentoDataFixture Magento/MediaContentCms/_files/page_with_asset.php
 | 
						|
     *
 | 
						|
     * @param string $field
 | 
						|
     * @param string $value
 | 
						|
     * @param array $expectedAssetIds
 | 
						|
     * @throws InvalidArgumentException
 | 
						|
     */
 | 
						|
    public function testPageFields(string $field, string $value, array $expectedAssetIds): void
 | 
						|
    {
 | 
						|
        $this->assertEquals(
 | 
						|
            $expectedAssetIds,
 | 
						|
            $this->getAssetIdsByContentField->execute($field, $value)
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Data provider for block tests
 | 
						|
     *
 | 
						|
     * @return array
 | 
						|
     */
 | 
						|
    public static function blockDataProvider(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            [self::STATUS_FIELD, self::STATUS_ENABLED, [self::FIXTURE_ASSET_ID]],
 | 
						|
            [self::STATUS_FIELD, self::STATUS_DISABLED, []],
 | 
						|
            [self::STORE_FIELD, self::DEFAULT_STORE_ID, [self::FIXTURE_ASSET_ID]],
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Data provider for page tests
 | 
						|
     *
 | 
						|
     * @return array
 | 
						|
     */
 | 
						|
    public static function pageDataProvider(): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            [self::STATUS_FIELD, self::STATUS_ENABLED, [self::FIXTURE_ASSET_ID]],
 | 
						|
            [self::STATUS_FIELD, self::STATUS_DISABLED, []],
 | 
						|
            [self::STORE_FIELD, self::ADMIN_STORE_ID, [self::FIXTURE_ASSET_ID]],
 | 
						|
        ];
 | 
						|
    }
 | 
						|
}
 |