Skip to content

Commit 0427cac

Browse files
committed
Support string to array conversion
1 parent 5a3ee32 commit 0427cac

5 files changed

Lines changed: 146 additions & 1 deletion

File tree

src/Builder/Expression/FactoryTrait.php

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Builder/Expression/ToArrayOperator.php

Lines changed: 42 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/Builder/Expression/Pipelines.php

Lines changed: 44 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace MongoDB\Tests\Builder\Expression;
6+
7+
use MongoDB\Builder\Expression;
8+
use MongoDB\Builder\Pipeline;
9+
use MongoDB\Builder\Stage;
10+
use MongoDB\Tests\Builder\PipelineTestCase;
11+
12+
/**
13+
* Test $toArray expression
14+
*/
15+
class ToArrayOperatorTest extends PipelineTestCase
16+
{
17+
public function testConvertBinDataToArray(): void
18+
{
19+
$pipeline = new Pipeline(
20+
Stage::project(
21+
_id: 0,
22+
original: Expression::binDataFieldPath('v'),
23+
asArray: Expression::toArray(
24+
Expression::binDataFieldPath('v'),
25+
),
26+
),
27+
);
28+
29+
$this->assertSamePipeline(Pipelines::ToArrayConvertBinDataToArray, $pipeline);
30+
}
31+
32+
public function testConvertStringToArray(): void
33+
{
34+
$pipeline = new Pipeline(
35+
Stage::project(
36+
_id: 0,
37+
numbers: Expression::toArray('[1, 2, 3]'),
38+
documents: Expression::toArray('[{"a": 1}, {"b": 2}]'),
39+
),
40+
);
41+
42+
$this->assertSamePipeline(Pipelines::ToArrayConvertStringToArray, $pipeline);
43+
}
44+
}

0 commit comments

Comments
 (0)