Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/cartforge.co/vendor/magento/module-adobe-stock-asset/Test/Unit/Model/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/cartforge.co/vendor/magento/module-adobe-stock-asset/Test/Unit/Model/SaveAssetTest.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Magento\AdobeStockAsset\Test\Unit\Model;

use Magento\AdobeStockAsset\Model\SaveAsset;
use Magento\AdobeStockAssetApi\Api\AssetRepositoryInterface;
use Magento\AdobeStockAssetApi\Api\CategoryRepositoryInterface;
use Magento\AdobeStockAssetApi\Api\CreatorRepositoryInterface;
use Magento\AdobeStockAssetApi\Api\Data\AssetInterface;
use Magento\AdobeStockAssetApi\Api\Data\AssetInterfaceFactory;
use Magento\AdobeStockAssetApi\Api\Data\CategoryInterface;
use Magento\AdobeStockAssetApi\Api\Data\CreatorInterface;
use Magento\Framework\Reflection\DataObjectProcessor;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;

/**
 * Test for save asset service.
 */
class SaveAssetTest extends TestCase
{
    /**
     * @var MockObject|AssetRepositoryInterface
     */
    private $assetRepository;

    /**
     * @var MockObject|AssetInterfaceFactory
     */
    private $assetFactory;

    /**
     * @var MockObject|CreatorRepositoryInterface
     */
    private $creatorRepository;

    /**
     * @var MockObject|CategoryRepositoryInterface
     */
    private $categoryRepository;

    /**
     * @var MockObject|DataObjectProcessor
     */
    private $objectProcessor;

    /**
     * @var SaveAsset
     */
    private $saveAsset;

    /**
     * @inheritdoc
     */
    protected function setUp(): void
    {
        $this->assetFactory = $this->createMock(AssetInterfaceFactory::class);
        $this->assetRepository = $this->createMock(AssetRepositoryInterface::class);
        $this->creatorRepository = $this->createMock(CreatorRepositoryInterface::class);
        $this->categoryRepository = $this->createMock(CategoryRepositoryInterface::class);
        $this->objectProcessor = $this->createMock(DataObjectProcessor::class);

        $this->saveAsset = (new ObjectManager($this))->getObject(
            SaveAsset::class,
            [
                'assetFactory' => $this->assetFactory,
                'assetRepository' => $this->assetRepository,
                'creatorRepository' => $this->creatorRepository,
                'categoryRepository' => $this->categoryRepository,
                'objectProcessor' => $this->objectProcessor
            ]
        );
    }

    public function testExecute(): void
    {
        $data = [
            'id' => 1,
            'media_gallery_id' => 2
        ];
        $categoryId = 5;
        $creatorId = 6;

        $asset = $this->createMock(AssetInterface::class);

        $this->objectProcessor->expects($this->once())
            ->method('buildOutputDataArray')
            ->with($asset, AssetInterface::class)
            ->willReturn($data);

        $category = $this->createMock(CategoryInterface::class);
        $category->expects($this->once())->method('getId')
            ->willReturn($categoryId);
        $asset->expects($this->once())
            ->method('getCategory')
            ->willReturn($category);
        $this->categoryRepository->expects($this->once())->method('save')
            ->with($category)
            ->willReturn($category);

        $creator = $this->createMock(CreatorInterface::class);
        $creator->expects($this->once())
            ->method('getId')
            ->willReturn($creatorId);
        $asset->expects($this->once())
            ->method('getCreator')
            ->willReturn($creator);
        $this->creatorRepository->expects($this->once())
            ->method('save')
            ->with($creator)
            ->willReturn($creator);

        $finalData = [
            'id' => 1,
            'media_gallery_id' => 2,
            'category_id' => $categoryId,
            'creator_id' => $creatorId,
            'category' => $category,
            'creator' => $creator
        ];

        $finalAsset = $this->createMock(AssetInterface::class);

        $this->assetFactory->expects($this->once())
            ->method('create')
            ->with(['data' => $finalData])
            ->willReturn($finalAsset);

        $this->assetRepository->expects($this->once())->method('save')
            ->with($finalAsset);

        $this->saveAsset->execute($asset);
    }

    public function assetDataProvider()
    {
        return [
            [
                [
                    'id' => 1,
                    'media_gallery_id' => 2,
                    'creator'
                ]
            ]
        ];
    }
}

Spamworldpro Mini