Skip to content

Commit

Permalink
Add test.
Browse files Browse the repository at this point in the history
  • Loading branch information
martineiber committed Nov 7, 2024
1 parent 584d6af commit a4a3d3f
Showing 1 changed file with 66 additions and 0 deletions.
66 changes: 66 additions & 0 deletions tests/Unit/DataIndex/Filter/FullTextFilterTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?php
declare(strict_types=1);

/**
* Pimcore
*
* This source file is available under following license:
* - Pimcore Commercial License (PCL)
*
* @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
* @license http://www.pimcore.org/license PCL
*/

namespace Pimcore\Bundle\StudioBackendBundle\Tests\Unit\DataIndex\Filter;

use Codeception\Stub\Expected;
use Codeception\Test\Unit;
use Pimcore\Bundle\StudioBackendBundle\DataIndex\Filter\FullTextFilter;
use Pimcore\Bundle\StudioBackendBundle\DataIndex\Query\AssetQueryInterface;
use Pimcore\Bundle\StudioBackendBundle\DataIndex\Query\QueryInterface;
use Pimcore\Bundle\StudioBackendBundle\Exception\Api\InvalidArgumentException;
use Pimcore\Bundle\StudioBackendBundle\MappedParameter\Filter\SimpleColumnFilter;
use Pimcore\Bundle\StudioBackendBundle\MappedParameter\Filter\SimpleColumnFiltersParameterInterface;

/**
* @internal
*/
final class FullTextFilterTest extends Unit
{
public function testIsExceptionThrownWhenFilterIsNotAString(): void
{
$columnFilter = new SimpleColumnFilter('system.fulltext', 1);
$parameter = $this->makeEmpty(SimpleColumnFiltersParameterInterface::class, [
'getSimpleColumnFilterByType' => $columnFilter,
]);


$query = $this->makeEmpty(QueryInterface::class);

$this->expectException(InvalidArgumentException::class);
$this->expectExceptionMessage('Filter value for the fulltext filter must be a string');

$filter = new FullTextFilter();
$filter->apply($parameter, $query);
}

public function testIfFilterFullTextIsCalled(): void
{
$columnFilter = new SimpleColumnFilter('system.fulltext', "term");
$parameter = $this->makeEmpty(SimpleColumnFiltersParameterInterface::class, [
'getSimpleColumnFilterByType' => $columnFilter,
]);


$query = $this->makeEmpty(QueryInterface::class, [
'filterFullText' => Expected::once(function ($term) {
$this->assertSame("term", $term);

return $this->makeEmpty(QueryInterface::class);
}),
]);

$filter = new FullTextFilter();
$filter->apply($parameter, $query);
}
}

0 comments on commit a4a3d3f

Please sign in to comment.