Files
2026-09-15 10:35:56 +08:00

48 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
namespace Esun\MultiLocaleTranslation\Test\Unit\Model\Entity;
use Esun\MultiLocaleTranslation\Model\CmsTranslationRepository;
use Esun\MultiLocaleTranslation\Model\Config\SkippedFields;
use Esun\MultiLocaleTranslation\Model\Entity\WikiHomepageEntity;
use Esun\Wiki\Model\Homepage;
use Esun\Wiki\Model\ResourceModel\Homepage\Collection;
use Esun\Wiki\Model\ResourceModel\Homepage\CollectionFactory;
use PHPUnit\Framework\TestCase;
class WikiHomepageEntityTest extends TestCase
{
public function testLoadsHomepageTranslationFields(): void
{
$homepage = $this->createMock(Homepage::class);
$homepage->method('getId')->willReturn(1);
$homepage->method('getData')->willReturnMap([
['title', null, 'Wiki'],
['content', null, '<p>Wiki content</p>'],
['meta_title', null, 'Wiki meta'],
['meta_description', null, 'Wiki description'],
['meta_keywords', null, 'Wiki keywords'],
]);
$collection = $this->createMock(Collection::class);
$collection->method('addFieldToFilter')->willReturnSelf();
$collection->method('setPageSize')->willReturnSelf();
$collection->method('getFirstItem')->willReturn($homepage);
$factory = $this->createMock(CollectionFactory::class);
$factory->method('create')->willReturn($collection);
$repository = $this->createMock(CmsTranslationRepository::class);
$repository->method('getTranslations')->willReturn([]);
$fields = (new WikiHomepageEntity(
$factory,
$repository,
$this->createMock(SkippedFields::class)
))->getFields(1, 0, 16);
self::assertSame(['title', 'content', 'meta_title', 'meta_description', 'meta_keywords'],
array_column($fields, 'code'));
self::assertTrue($fields[1]['is_html']);
}
}