-
François Agneray authoredFrançois Agneray authored
ConeSearchTest.php 4.21 KiB
<?php
/*
* This file is part of Anis Server.
*
* (c) Laboratoire d'Astrophysique de Marseille / CNRS
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace App\Tests\Search\Query;
use PHPUnit\Framework\TestCase;
use App\Search\Query\ConeSearch;
use App\Search\Query\AnisQueryBuilder;
use App\Search\Query\SearchQueryException;
use Doctrine\DBAL\Query\QueryBuilder as DoctrineQueryBuilder;
use Doctrine\DBAL\Query\Expression\ExpressionBuilder;
use App\Entity\Dataset;
use App\Entity\Attribute;
final class ConeSearchTest extends TestCase
{
public function testConeSearch(): void
{
$id = $this->createMock(Attribute::class);
$id->method('getId')->willReturn(1);
$ra = $this->createMock(Attribute::class);
$ra->method('getId')->willReturn(2);
$dec = $this->createMock(Attribute::class);
$dec->method('getId')->willReturn(3);
$datasetSelected = $this->createMock(Dataset::class);
$datasetSelected->method('getAttributes')->willReturn(array($id, $ra, $dec));
$datasetSelected->method('getConfig')->willReturn(array('cone_search' => array(
'cone_search_enabled' => true,
'cone_search_column_ra' => 2,
'cone_search_column_dec' => 3
)));
$doctrineQueryBuilder = $this->createMock(DoctrineQueryBuilder::class);
$expr = $this->createMock(ExpressionBuilder::class);
$doctrineQueryBuilder->method('expr')->willReturn($expr);
$doctrineQueryBuilder->expects($this->once())->method('where');
$anisQueryBuilder = $this->createMock(AnisQueryBuilder::class);
$anisQueryBuilder->method('getDoctrineQueryBuilder')->willReturn($doctrineQueryBuilder);
$queryParams = array('cs' => '102.5:0.0:100');
(new ConeSearch())($anisQueryBuilder, $datasetSelected, $queryParams);
}
public function testConeSearchException(): void
{
$this->expectException(SearchQueryException::class);
$anisQueryBuilder = $this->createMock(AnisQueryBuilder::class);
$datasetSelected = $this->createMock(Dataset::class);
$queryParams = array('cs' => '102.5:0.0:100:10');
(new ConeSearch())($anisQueryBuilder, $datasetSelected, $queryParams);
}
public function testConeSearchUnavailableException(): void
{
$this->expectException(SearchQueryException::class);
$anisQueryBuilder = $this->createMock(AnisQueryBuilder::class);
$datasetSelected = $this->createMock(Dataset::class);
$datasetSelected->method('getConfig')->willReturn(array('cone_search' => array(
'cone_search_enabled' => false,
'cone_search_column_ra' => 2,
'cone_search_column_dec' => 3
)));
$queryParams = array('cs' => '102.5:0.0:100');
(new ConeSearch())($anisQueryBuilder, $datasetSelected, $queryParams);
}
public function testConeSearchParamsValues(): void
{
$id = $this->createMock(Attribute::class);
$id->method('getId')->willReturn(1);
$ra = $this->createMock(Attribute::class);
$ra->method('getId')->willReturn(2);
$dec = $this->createMock(Attribute::class);
$dec->method('getId')->willReturn(3);
$datasetSelected = $this->createMock(Dataset::class);
$datasetSelected->method('getAttributes')->willReturn(array($id, $ra, $dec));
$datasetSelected->method('getConfig')->willReturn(array('cone_search' => array(
'cone_search_enabled' => true,
'cone_search_column_ra' => 2,
'cone_search_column_dec' => 3
)));
$doctrineQueryBuilder = $this->createMock(DoctrineQueryBuilder::class);
$expr = $this->createMock(ExpressionBuilder::class);
$doctrineQueryBuilder->method('expr')->willReturn($expr);
$doctrineQueryBuilder->expects($this->once())->method('where');
$anisQueryBuilder = $this->createMock(AnisQueryBuilder::class);
$anisQueryBuilder->method('getDoctrineQueryBuilder')->willReturn($doctrineQueryBuilder);
$queryParams = array('cs' => '102.5:91:0');
(new ConeSearch())($anisQueryBuilder, $datasetSelected, $queryParams);
}
}