Add new types Array, Boolean, Record, Math
Signed-off-by: davidarendsen <davidarendsen@hey.com>
This commit is contained in:
parent
a50e33ba04
commit
057a2d625e
10 changed files with 137 additions and 29 deletions
|
|
@ -5,13 +5,14 @@ declare(strict_types=1);
|
|||
namespace Tests\Functions;
|
||||
|
||||
use Arendsen\FluxQueryBuilder\Functions\Reduce;
|
||||
use Arendsen\FluxQueryBuilder\Type\Math;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class ReduceFunctionTest extends TestCase
|
||||
{
|
||||
public function testSimpleReduce()
|
||||
{
|
||||
$expression = new Reduce(['sum' => 'r._value + accumulator.sum'], ['sum' => 0]);
|
||||
$expression = new Reduce(['sum' => new Math('r._value + accumulator.sum')], ['sum' => 0]);
|
||||
|
||||
$query = '|> reduce(fn: (r, accumulator) => ({sum: r._value + accumulator.sum}), identity: {sum: 0}) ';
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ use Exception;
|
|||
use Arendsen\FluxQueryBuilder\Expression\KeyValue;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Arendsen\FluxQueryBuilder\QueryBuilder;
|
||||
use Arendsen\FluxQueryBuilder\Type\Math;
|
||||
|
||||
final class QueryBuilderTest extends TestCase
|
||||
{
|
||||
|
|
@ -102,7 +103,7 @@ final class QueryBuilderTest extends TestCase
|
|||
->addFilter(KeyValue::setEqualTo('_field', 'username'))
|
||||
->addMap('r with name: r.user')
|
||||
->addGroup(['_field', 'ip'])
|
||||
->addReduce(['count' => 'accumulator.count + 1'], ['count' => 0])
|
||||
->addReduce(['count' => new Math('accumulator.count + 1')], ['count' => 0])
|
||||
->addFilter(KeyValue::setGreaterOrEqualTo('count', 1)->andGreaterOrEqualTo('count2', 2));
|
||||
|
||||
$expectedQuery = 'from(bucket: "test_bucket") |> range(start: time(v: 2022-08-12T17:31:00Z)) ' .
|
||||
|
|
|
|||
|
|
@ -31,6 +31,34 @@ final class FactoryTypeTest extends TestCase
|
|||
'value',
|
||||
'"value"',
|
||||
],
|
||||
'Integer' => [
|
||||
12345,
|
||||
'12345'
|
||||
],
|
||||
'Boolean True' => [
|
||||
true,
|
||||
'true'
|
||||
],
|
||||
'Boolean False' => [
|
||||
false,
|
||||
'false'
|
||||
],
|
||||
'Array' => [
|
||||
['hello', 'world'],
|
||||
'"hello", "world"'
|
||||
],
|
||||
'Dictionary' => [
|
||||
['hello' => 'world', 'foo' => 'bar'],
|
||||
'hello: "world", foo: "bar"'
|
||||
],
|
||||
'Array Multidimensional' => [
|
||||
['hello' => ['test', 'foo']],
|
||||
'hello: ["test", "foo"]'
|
||||
],
|
||||
'Array Multidimensional 2' => [
|
||||
['hello' => ['test' => 'bar', 'foo' => 'hi']],
|
||||
'hello: [test: "bar", foo: "hi"]'
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
editor.link_modal.header
Reference in a new issue