50 lines
1.7 KiB
PHP
50 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace DigiComp\AssetAttributes\Tests\Functional;
|
|
|
|
use DigiComp\AssetAttributes\Domain\Model\AssetAttribute;
|
|
use Neos\Flow\Persistence\Doctrine\PersistenceManager;
|
|
use Neos\Flow\Persistence\Doctrine\Query;
|
|
use Neos\Flow\ResourceManagement\ResourceManager;
|
|
use Neos\Flow\Tests\FunctionalTestCase;
|
|
use Neos\Media\Domain\Model\Asset;
|
|
|
|
class AssetAttributeTest extends FunctionalTestCase
|
|
{
|
|
protected static $testablePersistenceEnabled = true;
|
|
|
|
protected ResourceManager $resourceManager;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
if (!$this->persistenceManager instanceof PersistenceManager) {
|
|
$this->markTestSkipped('Doctrine persistence is not enabled');
|
|
}
|
|
$this->resourceManager = $this->objectManager->get(ResourceManager::class);
|
|
}
|
|
|
|
/**
|
|
* @test
|
|
*/
|
|
public function itFindsAssetsHavingAnOwnAttribute(): void
|
|
{
|
|
$resource = $this->resourceManager->importResourceFromContent('hello world', 'hello-world.txt');
|
|
$asset = new Asset($resource);
|
|
$asset->getAttributes()->set('author', new AssetAttribute('author', 'Joe'));
|
|
$this->persistenceManager->add($asset);
|
|
|
|
$resource2 = $this->resourceManager->importResourceFromContent('hello universe', 'hello-universe.txt');
|
|
$asset2 = new Asset($resource2);
|
|
$this->persistenceManager->add($asset2);
|
|
|
|
$this->persistenceManager->persistAll();
|
|
|
|
$query = new Query(Asset::class);
|
|
$result = $query->matching($query->logicalAnd([
|
|
$query->equals('attributes.name', 'author'),
|
|
$query->equals('attributes.value', 'Joe'),
|
|
]))->execute();
|
|
static::assertCount(1, $result);
|
|
}
|
|
}
|