diff --git a/tests/Provider/QueryBuilderProvider.php b/tests/Provider/QueryBuilderProvider.php index 23c4cd0..6cb2338 100644 --- a/tests/Provider/QueryBuilderProvider.php +++ b/tests/Provider/QueryBuilderProvider.php @@ -510,19 +510,19 @@ public static function multiOperandFunctionBuilder(): array { $data = parent::multiOperandFunctionBuilder(); - $data['Greatest with 4 operands'][2] = 'GREATEST(1, 1.5, 1 + 2, (SELECT 10 FROM DUAL))'; - $data['Least with 4 operands'][2] = 'LEAST(1, 1.5, 1 + 2, (SELECT 10 FROM DUAL))'; + $data['Greatest with 4 operands'][2] = 'GREATEST(1, 1.5, (1 + 2), (SELECT 10 FROM DUAL))'; + $data['Least with 4 operands'][2] = 'LEAST(1, 1.5, (1 + 2), (SELECT 10 FROM DUAL))'; $data['Longest with 2 operands'][2] = << [ ArrayMerge::class, - ["'[1,2,3]'"], - "('[1,2,3]')", + [[1, 2, 3]], + '(:qp0)', [1, 2, 3], + [':qp0' => new Param('[1,2,3]', DataType::STRING)], ], 'ArrayMerge with 2 operands' => [ ArrayMerge::class, - ["'[1,2,3]'", $stringParam], + [[1, 2, 3], $stringParam], '(SELECT JSON_ARRAYAGG(value) AS value FROM (' - . "SELECT value FROM JSON_TABLE('[1,2,3]', '$[*]' COLUMNS(value PATH '$'))" - . " UNION SELECT value FROM JSON_TABLE(:qp0, '$[*]' COLUMNS(value PATH '$'))))", + . "SELECT value FROM JSON_TABLE(:qp0, '$[*]' COLUMNS(value PATH '$'))" + . " UNION SELECT value FROM JSON_TABLE(:qp1, '$[*]' COLUMNS(value PATH '$'))))", [1, 2, 3, 4, 5], - [':qp0' => $stringParam], + [ + ':qp0' => new Param('[1,2,3]', DataType::STRING), + ':qp1' => $stringParam, + ], ], 'ArrayMerge with 4 operands' => [ ArrayMerge::class, - ["'[1,2,3]'", [5, 6, 7], $stringParam, self::getDb()->select(new ArrayValue([9, 10]))], + [[1, 2, 3], new ArrayValue([5, 6, 7]), $stringParam, self::getDb()->select(new ArrayValue([9, 10]))], '(SELECT JSON_ARRAYAGG(value) AS value FROM (' - . "SELECT value FROM JSON_TABLE('[1,2,3]', '$[*]' COLUMNS(value PATH '$'))" - . " UNION SELECT value FROM JSON_TABLE(:qp0, '$[*]' COLUMNS(value PATH '$'))" + . "SELECT value FROM JSON_TABLE(:qp0, '$[*]' COLUMNS(value PATH '$'))" . " UNION SELECT value FROM JSON_TABLE(:qp1, '$[*]' COLUMNS(value PATH '$'))" - . " UNION SELECT value FROM JSON_TABLE((SELECT :qp2 FROM DUAL), '$[*]' COLUMNS(value PATH '$'))" + . " UNION SELECT value FROM JSON_TABLE(:qp2, '$[*]' COLUMNS(value PATH '$'))" + . " UNION SELECT value FROM JSON_TABLE((SELECT :qp3 FROM DUAL), '$[*]' COLUMNS(value PATH '$'))" . '))', [1, 2, 3, 4, 5, 6, 7, 9, 10], [ - ':qp0' => new Param('[5,6,7]', DataType::STRING), - ':qp1' => $stringParam, - ':qp2' => new Param('[9,10]', DataType::STRING), + ':qp0' => new Param('[1,2,3]', DataType::STRING), + ':qp1' => new Param('[5,6,7]', DataType::STRING), + ':qp2' => $stringParam, + ':qp3' => new Param('[9,10]', DataType::STRING), ], ], ]; diff --git a/tests/QueryBuilderTest.php b/tests/QueryBuilderTest.php index b8d992d..609c565 100644 --- a/tests/QueryBuilderTest.php +++ b/tests/QueryBuilderTest.php @@ -634,8 +634,8 @@ public function testArrayMergeWithTypeWithOrdering( $stringParam = new Param('[4,3,5]', DataType::STRING); $arrayMerge = (new ArrayMerge( - "'[2,1,3]'", - [6, 5, 7], + [2, 1, 3], + new ArrayValue([6, 5, 7]), $stringParam, self::getDb()->select(new ArrayValue([10, 9])), ))->type($type)->ordered(); @@ -643,18 +643,19 @@ public function testArrayMergeWithTypeWithOrdering( $this->assertSame( '(SELECT JSON_ARRAYAGG(value ORDER BY value) AS value FROM (' - . "SELECT value FROM JSON_TABLE('[2,1,3]', '$[*]' COLUMNS(value $operandType PATH '$'))" - . " UNION SELECT value FROM JSON_TABLE(:qp0, '$[*]' COLUMNS(value $operandType PATH '$'))" + . "SELECT value FROM JSON_TABLE(:qp0, '$[*]' COLUMNS(value $operandType PATH '$'))" . " UNION SELECT value FROM JSON_TABLE(:qp1, '$[*]' COLUMNS(value $operandType PATH '$'))" - . " UNION SELECT value FROM JSON_TABLE((SELECT :qp2 FROM DUAL), '$[*]' COLUMNS(value $operandType PATH '$'))" + . " UNION SELECT value FROM JSON_TABLE(:qp2, '$[*]' COLUMNS(value $operandType PATH '$'))" + . " UNION SELECT value FROM JSON_TABLE((SELECT :qp3 FROM DUAL), '$[*]' COLUMNS(value $operandType PATH '$'))" . '))', $qb->buildExpression($arrayMerge, $params) ); Assert::arraysEquals( [ - ':qp0' => new Param('[6,5,7]', DataType::STRING), - ':qp1' => $stringParam, - ':qp2' => new Param('[10,9]', DataType::STRING), + ':qp0' => new Param('[2,1,3]', DataType::STRING), + ':qp1' => new Param('[6,5,7]', DataType::STRING), + ':qp2' => $stringParam, + ':qp3' => new Param('[10,9]', DataType::STRING), ], $params, );