48 lines
1.9 KiB
PHP
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']);
|
|
}
|
|
}
|