magento2-docker/dev/tests/integration/testsuite/Magento/MediaContentCms/Model/ResourceModel/GetAssetIdsByContentFieldTe...

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]],
];
}
}