Add test to check if QueryBuilder internal parts are the correct instances
This commit is contained in:
parent
76e556350c
commit
e0cf376f6f
1 changed files with 33 additions and 0 deletions
|
|
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace Tests;
|
namespace Tests;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Arendsen\FluxQueryBuilder\Expression\KeyFilter;
|
use Arendsen\FluxQueryBuilder\Expression\KeyFilter;
|
||||||
|
|
@ -190,4 +191,36 @@ final class QueryBuilderTest extends TestCase
|
||||||
|
|
||||||
$this->assertEquals($expectedQuery, $queryBuilder->build());
|
$this->assertEquals($expectedQuery, $queryBuilder->build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testCorrectInstancesAreCreated()
|
||||||
|
{
|
||||||
|
$queryBuilder = new QueryBuilder();
|
||||||
|
$queryBuilder->fromBucket('test_bucket')
|
||||||
|
->addRangeStart(new DateTime('2022-08-12 17:31:00'));
|
||||||
|
|
||||||
|
$instances = [
|
||||||
|
\Arendsen\FluxQueryBuilder\Functions\From::class,
|
||||||
|
\Arendsen\FluxQueryBuilder\Functions\Range::class,
|
||||||
|
\Arendsen\FluxQueryBuilder\Functions\Measurement::class,
|
||||||
|
];
|
||||||
|
|
||||||
|
$requiredFluxQueryParts = $this->getClassProperty($queryBuilder, 'requiredFluxQueryParts');
|
||||||
|
|
||||||
|
foreach ($requiredFluxQueryParts as $keyPart => $part) {
|
||||||
|
$this->assertEquals($instances[$keyPart], $part);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getClassProperty($object, string $property): array
|
||||||
|
{
|
||||||
|
$propertyReader = function & ($object, $property) {
|
||||||
|
$value = & Closure::bind(function & () use ($property) {
|
||||||
|
return $this->$property;
|
||||||
|
}, $object, $object)->__invoke();
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
};
|
||||||
|
|
||||||
|
return $propertyReader($object, $property);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue