Add DateTime required param for Range functions
Signed-off-by: davidarendsen <davidarendsen@hey.com>
This commit is contained in:
parent
15a3f8fcde
commit
95e71624d5
5 changed files with 33 additions and 51 deletions
|
|
@ -10,40 +10,37 @@ final class RangeFunctionTest extends TestCase {
|
|||
|
||||
public function testOnlyStartOption()
|
||||
{
|
||||
$expression = new Range(['start' => '-360h']);
|
||||
$expression = new Range(
|
||||
new DateTime('2022-08-12 18:00:00')
|
||||
);
|
||||
|
||||
$query = '|> range(start: -360h) ';
|
||||
$query = '|> range(start: time(v: 2022-08-12T18:00:00Z)) ';
|
||||
|
||||
$this->assertEquals($query, $expression->__toString());
|
||||
}
|
||||
|
||||
public function testWithStopOption()
|
||||
{
|
||||
$expression = new Range(['start' => '-360h', 'stop' => 'now()']);
|
||||
$expression = new Range(
|
||||
new DateTime('2022-08-12 18:00:00'),
|
||||
new DateTime('2022-08-12 20:00:00')
|
||||
);
|
||||
|
||||
$query = '|> range(start: -360h, stop: now()) ';
|
||||
$query = '|> range(start: time(v: 2022-08-12T18:00:00Z), stop: time(v: 2022-08-12T20:00:00Z)) ';
|
||||
|
||||
$this->assertEquals($query, $expression->__toString());
|
||||
}
|
||||
|
||||
public function testRangeInBetween()
|
||||
{
|
||||
$expression = new Range([
|
||||
'start' => new DateTime('2022-08-12 17:31:00'),
|
||||
'stop' => new DateTime('2022-08-12 18:31:00'),
|
||||
]);
|
||||
$expression = new Range(
|
||||
new DateTime('2022-08-12 17:31:00'),
|
||||
new DateTime('2022-08-12 18:31:00'),
|
||||
);
|
||||
|
||||
$expected = '|> range(start: time(v: 2022-08-12T17:31:00Z), stop: time(v: 2022-08-12T18:31:00Z)) ';
|
||||
|
||||
$this->assertEquals($expected, $expression->__toString());
|
||||
}
|
||||
|
||||
public function testThrowsExceptionWhenStartIsMissing()
|
||||
{
|
||||
$this->expectException(FunctionRequiredSettingMissingException::class);
|
||||
|
||||
$expression = new Range(['stop' => 'now()']);
|
||||
$expression->__toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -33,18 +33,20 @@ final class QueryBuilderTest extends TestCase {
|
|||
'bucket' => 'example_bucket',
|
||||
],
|
||||
'test_measurement',
|
||||
'-360h',
|
||||
new DateTime('2022-08-12 23:05:00'),
|
||||
null,
|
||||
'from(bucket: "example_bucket") |> range(start: -360h) |> filter(fn: (r) => r._measurement == "test_measurement") '
|
||||
'from(bucket: "example_bucket") |> range(start: time(v: 2022-08-12T23:05:00Z)) ' .
|
||||
'|> filter(fn: (r) => r._measurement == "test_measurement") '
|
||||
],
|
||||
'query with filter' => [
|
||||
[
|
||||
'bucket' => 'example_bucket',
|
||||
],
|
||||
'test_measurement',
|
||||
'-360h',
|
||||
new DateTime('2022-08-12 20:05:00'),
|
||||
KeyValue::setEqualTo('user', 'username'),
|
||||
'from(bucket: "example_bucket") |> range(start: -360h) |> filter(fn: (r) => r._measurement == "test_measurement") ' .
|
||||
'from(bucket: "example_bucket") |> range(start: time(v: 2022-08-12T20:05:00Z)) ' .
|
||||
'|> filter(fn: (r) => r._measurement == "test_measurement") ' .
|
||||
'|> filter(fn: (r) => r.user == "username") '
|
||||
],
|
||||
];
|
||||
|
|
@ -66,7 +68,7 @@ final class QueryBuilderTest extends TestCase {
|
|||
$queryBuilder->fromMeasurement($measurement);
|
||||
}
|
||||
if($range) {
|
||||
$queryBuilder->addRange($range);
|
||||
$queryBuilder->addRangeStart($range['start']);
|
||||
}
|
||||
|
||||
$queryBuilder->build();
|
||||
|
|
@ -76,10 +78,10 @@ final class QueryBuilderTest extends TestCase {
|
|||
{
|
||||
return [
|
||||
'without from data' => [
|
||||
null, 'test_measurement', ['start' => '-360h'],
|
||||
null, 'test_measurement', ['start' => new DateTime('2022-08-12 20:05:00')],
|
||||
],
|
||||
'without measurement data' => [
|
||||
['from' => 'test_bucket'], null, ['start' => '-360h'],
|
||||
['from' => 'test_bucket'], null, ['start' => new DateTime('2022-08-12 20:05:00')],
|
||||
],
|
||||
'without range data' => [
|
||||
['from' => 'test_bucket'], 'test_measurement', null,
|
||||
|
|
|
|||
Loading…
Add table
editor.link_modal.header
Reference in a new issue